summaryrefslogtreecommitdiff
path: root/nscd/nscd_initgroups.c
diff options
context:
space:
mode:
Diffstat (limited to 'nscd/nscd_initgroups.c')
-rw-r--r--nscd/nscd_initgroups.c15
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)