]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
backport VG_(getgroups) fix (v5445)
authorDirk Mueller <daywalker@users.sourceforge.net>
Wed, 22 Feb 2006 13:18:56 +0000 (13:18 +0000)
committerDirk Mueller <daywalker@users.sourceforge.net>
Wed, 22 Feb 2006 13:18:56 +0000 (13:18 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_1_BRANCH@5673

coregrind/m_libcproc.c

index c851fc2c0a2c4209bbd0b3fc9d1aedf996e7f3b5..e329ace4df06c4ff879dce4d72e79094d32e8f1f 100644 (file)
@@ -400,17 +400,17 @@ Int VG_(getgroups)( Int size, UInt* list )
 #  if defined(VGP_x86_linux) || defined(VGP_ppc32_linux)
    Int    i;
    SysRes sres;
-   UShort list16[32];
+   UShort list16[64];
    if (size < 0) return -1;
-   if (size > 32) size = 32;
+   if (size > 64) size = 64;
    sres = VG_(do_syscall2)(__NR_getgroups, size, (Addr)list16);
    if (sres.isError)
       return -1;
-   if (sres.val != size)
+   if (sres.val > size)
       return -1;
-   for (i = 0; i < size; i++)
+   for (i = 0; i < sres.val; i++)
       list[i] = (UInt)list16[i];
-   return size;
+   return sres.val;
 
 #  elif defined(VGP_amd64_linux)
    SysRes sres;