Fix `getgroups' for when zero supplementary group IDs exist.
authorLudovic Courtès <ludo@gnu.org>
Sat, 16 Feb 2013 17:40:39 +0000 (18:40 +0100)
committerLudovic Courtès <ludo@gnu.org>
Sat, 16 Feb 2013 17:41:15 +0000 (18:41 +0100)
* libguile/posix.c (scm_getgroups): Return the empty vector when NGROUPS
  is zero.  Reported by Mike Gran <spk121@yahoo.com>.

libguile/posix.c

index 324f21b..39661a0 100644 (file)
@@ -265,8 +265,10 @@ SCM_DEFINE (scm_getgroups, "getgroups", 0, 0, 0,
   GETGROUPS_T *groups;
 
   ngroups = getgroups (0, NULL);
-  if (ngroups <= 0)
+  if (ngroups < 0)
     SCM_SYSERROR;
+  else if (ngroups == 0)
+    return scm_c_make_vector (0, SCM_BOOL_F);
 
   size = ngroups * sizeof (GETGROUPS_T);
   groups = scm_malloc (size);