From a2e384682b8d2b2997ba8e9dd9762baab7ebc2f0 Mon Sep 17 00:00:00 2001 From: James Watkins-Harvey Date: Thu, 1 Nov 2018 17:05:11 -0400 Subject: [PATCH] Use idtools.LookupGroup instead of parsing /etc/group file for docker.sock ownership Signed-off-by: James Watkins-Harvey --- daemon/listeners/group_unix.go | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/daemon/listeners/group_unix.go b/daemon/listeners/group_unix.go index 9cc17eba7b8d9..68c0791982dc5 100644 --- a/daemon/listeners/group_unix.go +++ b/daemon/listeners/group_unix.go @@ -6,25 +6,15 @@ import ( "fmt" "strconv" - "github.com/opencontainers/runc/libcontainer/user" - "github.com/pkg/errors" + "github.com/docker/docker/pkg/idtools" ) const defaultSocketGroup = "docker" func lookupGID(name string) (int, error) { - groupFile, err := user.GetGroupPath() - if err != nil { - return -1, errors.Wrap(err, "error looking up groups") - } - groups, err := user.ParseGroupFileFilter(groupFile, func(g user.Group) bool { - return g.Name == name || strconv.Itoa(g.Gid) == name - }) - if err != nil { - return -1, errors.Wrapf(err, "error parsing groups for %s", name) - } - if len(groups) > 0 { - return groups[0].Gid, nil + group, err := idtools.LookupGroup(name) + if err == nil { + return group.Gid, nil } gid, err := strconv.Atoi(name) if err == nil {