Skip to content

Commit 0070ab7

Browse files
junnplusAkihiroSuda
authored andcommitted
oci: skip checking gid for WithAppendAdditionalGroups
Signed-off-by: Ye Sijun <[email protected]> (cherry picked from commit 2dbff1d) Signed-off-by: Akihiro Suda <[email protected]>
1 parent 16d52de commit 0070ab7

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

oci/spec_opts.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -807,15 +807,19 @@ func WithAppendAdditionalGroups(groups ...string) SpecOpts {
807807
groupMap := make(map[string]user.Group)
808808
for _, group := range ugroups {
809809
groupMap[group.Name] = group
810-
groupMap[strconv.Itoa(group.Gid)] = group
811810
}
812811
var gids []uint32
813812
for _, group := range groups {
814-
g, ok := groupMap[group]
815-
if !ok {
816-
return fmt.Errorf("unable to find group %s", group)
813+
gid, err := strconv.ParseUint(group, 10, 32)
814+
if err == nil {
815+
gids = append(gids, uint32(gid))
816+
} else {
817+
g, ok := groupMap[group]
818+
if !ok {
819+
return fmt.Errorf("unable to find group %s", group)
820+
}
821+
gids = append(gids, uint32(g.Gid))
817822
}
818-
gids = append(gids, uint32(g.Gid))
819823
}
820824
s.Process.User.AdditionalGids = append(s.Process.User.AdditionalGids, gids...)
821825
return nil

oci/spec_opts_linux_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,11 @@ daemon:x:2:root,bin,daemon
476476
groups: []string{"bin", "daemon"},
477477
expected: []uint32{0, 1, 2},
478478
},
479+
{
480+
name: "append group id",
481+
groups: []string{"999"},
482+
expected: []uint32{999},
483+
},
479484
{
480485
name: "unknown group",
481486
groups: []string{"unknown"},

0 commit comments

Comments
 (0)