X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fexecute.c;h=40af7d65f1864717f2ce34f72307c434256cbfd1;hp=92f4eafd3570287b5e42f8e7cc4dc5ce06fd51c8;hb=ddd88763921a1534081ed28e36f6712a85449005;hpb=034a2a52ac0ec83e0229941d635d310b23eb04df diff --git a/src/execute.c b/src/execute.c index 92f4eafd3..40af7d65f 100644 --- a/src/execute.c +++ b/src/execute.c @@ -551,7 +551,7 @@ static int restore_confirm_stdio(const ExecContext *context, static int get_group_creds(const char *groupname, gid_t *gid) { struct group *g; - unsigned long lu; + gid_t id; assert(groupname); assert(gid); @@ -564,9 +564,9 @@ static int get_group_creds(const char *groupname, gid_t *gid) { return 0; } - if (safe_atolu(groupname, &lu) >= 0) { + if (parse_gid(groupname, &id) >= 0) { errno = 0; - g = getgrgid((gid_t) lu); + g = getgrgid(id); } else { errno = 0; g = getgrnam(groupname);