Skip to content

Commit 2dbff1d

Browse files
committed
oci: skip checking gid for WithAppendAdditionalGroups
Signed-off-by: Ye Sijun <[email protected]>
1 parent 01a2b79 commit 2dbff1d

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

oci/spec_opts.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -879,15 +879,19 @@ func WithAppendAdditionalGroups(groups ...string) SpecOpts {
879879
groupMap := make(map[string]user.Group)
880880
for _, group := range ugroups {
881881
groupMap[group.Name] = group
882-
groupMap[strconv.Itoa(group.Gid)] = group
883882
}
884883
var gids []uint32
885884
for _, group := range groups {
886-
g, ok := groupMap[group]
887-
if !ok {
888-
return fmt.Errorf("unable to find group %s", group)
885+
gid, err := strconv.ParseUint(group, 10, 32)
886+
if err == nil {
887+
gids = append(gids, uint32(gid))
888+
} else {
889+
g, ok := groupMap[group]
890+
if !ok {
891+
return fmt.Errorf("unable to find group %s", group)
892+
}
893+
gids = append(gids, uint32(g.Gid))
889894
}
890-
gids = append(gids, uint32(g.Gid))
891895
}
892896
s.Process.User.AdditionalGids = append(s.Process.User.AdditionalGids, gids...)
893897
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)