Hey guys,

This patch fixes a memory problem. munmap must deallocate the exact
number of bytes in a UID/GID array.

Index: idvec-auth.c
===================================================================
RCS file: /cvsroot/hurd/hurd/libshouldbeinlibc/idvec-auth.c,v
retrieving revision 1.8
diff -u -r1.8 idvec-auth.c
--- idvec-auth.c        8 May 2002 09:24:12 -0000       1.8
+++ idvec-auth.c        17 Jul 2008 15:54:49 -0000
@@ -70,13 +70,13 @@

   /* Deallocate any out-of-line memory we got back.  */
   if (_eff_uids != eff_uid_buf)
-    munmap ((caddr_t) _eff_uids, num_eff_uids);
+    munmap ((caddr_t) _eff_uids, num_eff_uids * sizeof (uid_t));
   if (_avail_uids != avail_uid_buf)
-    munmap ((caddr_t) _avail_uids, num_avail_uids);
+    munmap ((caddr_t) _avail_uids, num_avail_uids * sizeof (uid_t));
   if (_eff_gids != eff_gid_buf)
-    munmap ((caddr_t) _eff_gids, num_eff_gids);
+    munmap ((caddr_t) _eff_gids, num_eff_gids * sizeof (gid_t));
   if (_avail_gids != avail_gid_buf)
-    munmap ((caddr_t) _avail_gids, num_avail_gids);
+    munmap ((caddr_t) _avail_gids, num_avail_gids * sizeof (gid_t));

   return err;
 }
Index: idvec-auth.c
===================================================================
RCS file: /cvsroot/hurd/hurd/libshouldbeinlibc/idvec-auth.c,v
retrieving revision 1.8
diff -u -r1.8 idvec-auth.c
--- idvec-auth.c	8 May 2002 09:24:12 -0000	1.8
+++ idvec-auth.c	17 Jul 2008 15:54:49 -0000
@@ -70,13 +70,13 @@
 
   /* Deallocate any out-of-line memory we got back.  */
   if (_eff_uids != eff_uid_buf)
-    munmap ((caddr_t) _eff_uids, num_eff_uids);
+    munmap ((caddr_t) _eff_uids, num_eff_uids * sizeof (uid_t));
   if (_avail_uids != avail_uid_buf)
-    munmap ((caddr_t) _avail_uids, num_avail_uids);
+    munmap ((caddr_t) _avail_uids, num_avail_uids * sizeof (uid_t));
   if (_eff_gids != eff_gid_buf)
-    munmap ((caddr_t) _eff_gids, num_eff_gids);
+    munmap ((caddr_t) _eff_gids, num_eff_gids * sizeof (gid_t));
   if (_avail_gids != avail_gid_buf)
-    munmap ((caddr_t) _avail_gids, num_avail_gids);
+    munmap ((caddr_t) _avail_gids, num_avail_gids * sizeof (gid_t));
 
   return err;
 }

Reply via email to