From 2eeb9a5d73bd86261b69e61955741e3ce86c28f6 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Wed, 2 Sep 2009 19:48:39 -0700 Subject: Fix lookup of group names in hesiod initgroups. Resolving names from a grplist entry actually never worked. --- hesiod/nss_hesiod/hesiod-grp.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'hesiod') diff --git a/hesiod/nss_hesiod/hesiod-grp.c b/hesiod/nss_hesiod/hesiod-grp.c index 50c53f7893..f0c8c31e06 100644 --- a/hesiod/nss_hesiod/hesiod-grp.c +++ b/hesiod/nss_hesiod/hesiod-grp.c @@ -139,21 +139,19 @@ internal_gid_from_group (void *context, const char *groupname, gid_t *group) { char *p = *grp_res; + /* Skip to third field. */ while (*p != '\0' && *p != ':') ++p; - while (*p != '\0' && *p == ':') + if (*p != '\0') ++p; while (*p != '\0' && *p != ':') ++p; - while (*p != '\0' && *p == ':') - ++p; - if (*p == ':') + if (*p != '\0') { char *endp; char *q = ++p; long int val; - q = p; while (*q != '\0' && *q != ':') ++q; -- cgit v1.2.3