Skip to content

Commit b07ec6b

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 356672c commit b07ec6b

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
@@ -794,15 +794,19 @@ func WithAppendAdditionalGroups(groups ...string) SpecOpts {
794794
groupMap := make(map[string]user.Group)
795795
for _, group := range ugroups {
796796
groupMap[group.Name] = group
797-
groupMap[strconv.Itoa(group.Gid)] = group
798797
}
799798
var gids []uint32
800799
for _, group := range groups {
801-
g, ok := groupMap[group]
802-
if !ok {
803-
return fmt.Errorf("unable to find group %s", group)
800+
gid, err := strconv.ParseUint(group, 10, 32)
801+
if err == nil {
802+
gids = append(gids, uint32(gid))
803+
} else {
804+
g, ok := groupMap[group]
805+
if !ok {
806+
return fmt.Errorf("unable to find group %s", group)
807+
}
808+
gids = append(gids, uint32(g.Gid))
804809
}
805-
gids = append(gids, uint32(g.Gid))
806810
}
807811
s.Process.User.AdditionalGids = append(s.Process.User.AdditionalGids, gids...)
808812
return nil

oci/spec_opts_linux_test.go

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

0 commit comments

Comments
 (0)