diff options
Diffstat (limited to 'nscd/nscd_initgroups.c')
-rw-r--r-- | nscd/nscd_initgroups.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/nscd/nscd_initgroups.c b/nscd/nscd_initgroups.c index d6cb00000e..ce44f654d7 100644 --- a/nscd/nscd_initgroups.c +++ b/nscd/nscd_initgroups.c @@ -81,8 +81,11 @@ __nscd_getgrouplist (const char *user, gid_t group, long int *size, sock = __nscd_open_socket (user, userlen, INITGROUPS, &initgr_resp_mem, sizeof (initgr_resp_mem)); if (sock == -1) - /* nscd not running or wrong version or hosts caching disabled. */ - __nss_not_use_nscd_group = 1; + { + /* nscd not running or wrong version or hosts caching disabled. */ + __nss_not_use_nscd_group = 1; + goto out; + } initgr_resp = &initgr_resp_mem; } @@ -128,8 +131,12 @@ __nscd_getgrouplist (const char *user, gid_t group, long int *size, } } else - /* No group found yet. */ - retval = 0; + { + /* No group found yet. */ + retval = 0; + + assert (*size >= 1); + } /* Check whether GROUP is part of the mix. If not, add it. */ if (retval >= 0) |