|
From: <sv...@va...> - 2005-12-27 02:08:08
|
Author: sewardj
Date: 2005-12-27 02:08:03 +0000 (Tue, 27 Dec 2005)
New Revision: 5445
Log:
VG_(getgroups) fix (Shinichi Noda)
Modified:
trunk/coregrind/m_libcproc.c
trunk/docs/internals/3_1_BUGSTATUS.txt
Modified: trunk/coregrind/m_libcproc.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_libcproc.c 2005-12-27 01:44:33 UTC (rev 5444)
+++ trunk/coregrind/m_libcproc.c 2005-12-27 02:08:03 UTC (rev 5445)
@@ -400,17 +400,17 @@
# 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 =3D 32;
+ if (size > 64) size =3D 64;
sres =3D VG_(do_syscall2)(__NR_getgroups, size, (Addr)list16);
if (sres.isError)
return -1;
- if (sres.val !=3D size)
+ if (sres.val > size)
return -1;
- for (i =3D 0; i < size; i++)
+ for (i =3D 0; i < sres.val; i++)
list[i] =3D (UInt)list16[i];
- return size;
+ return sres.val;
=20
# elif defined(VGP_amd64_linux) || defined(VGP_ppc64_linux)
SysRes sres;
Modified: trunk/docs/internals/3_1_BUGSTATUS.txt
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/internals/3_1_BUGSTATUS.txt 2005-12-27 01:44:33 UTC (rev 5=
444)
+++ trunk/docs/internals/3_1_BUGSTATUS.txt 2005-12-27 02:08:03 UTC (rev 5=
445)
@@ -31,3 +31,4 @@
v5382 pending n-i-bz AshleyP's --gen-suppressions output fix
v5384 wontfix 117096 Weird errors when --log-fd=3D has invalid v=
alue
v5396 pending n-i-bz cg_annotate's --sort option broken
+v5445 pending n-i-bz VG_(getgroups) fix (Shinichi Noda)
|