]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
VG_(getgroups) fix (Shinichi Noda)
authorJulian Seward <jseward@acm.org>
Tue, 27 Dec 2005 02:08:03 +0000 (02:08 +0000)
committerJulian Seward <jseward@acm.org>
Tue, 27 Dec 2005 02:08:03 +0000 (02:08 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5445

coregrind/m_libcproc.c
docs/internals/3_1_BUGSTATUS.txt

index 1db9d45d25c50bcbb7f1f705ca4fd4bb91e3f17f..3cddcb4406326e136441f27c6d60621111d2ba01 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) || defined(VGP_ppc64_linux)
    SysRes sres;
index fe654e9ae481611faab66b41a5f7a1fdee5a8ae4..06ba2f1dd199dc08d6d576e6236f461a9acfb8b9 100644 (file)
@@ -31,3 +31,4 @@ v5378/80  v5379/81  n-i-bz   Clarified leak checker output message
 v5382     pending   n-i-bz   AshleyP's --gen-suppressions output fix
 v5384     wontfix   117096   Weird errors when --log-fd= has invalid value
 v5396     pending   n-i-bz   cg_annotate's --sort option broken
+v5445     pending   n-i-bz   VG_(getgroups) fix (Shinichi Noda)