[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r4082 - in glibc-package/trunk/debian: . patches patches/any



Author: aurel32
Date: 2010-01-14 22:21:11 +0000 (Thu, 14 Jan 2010)
New Revision: 4082

Added:
   glibc-package/trunk/debian/patches/any/cvs-malloc_info-init.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
  * Add patches/any/cvs-malloc_info-init.diff to fix malloc_info() with no
    malloc() done.  Closes: #562679.



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2010-01-14 05:56:42 UTC (rev 4081)
+++ glibc-package/trunk/debian/changelog	2010-01-14 22:21:11 UTC (rev 4082)
@@ -4,6 +4,8 @@
   * kfreebsd/local-sysdeps.diff: update to revision 2913 (from glibc-bsd).
   * Don't run the testsuite in parallel, as it sometimes causes some failures
     in some tests.
+  * Add patches/any/cvs-malloc_info-init.diff to fix malloc_info() with no
+    malloc() done.  Closes: #562679.
 
   [ Samuel Thibault ]
   * patches/hurd-i386/local-pthread.diff: New hurd-only patch to provide
@@ -16,7 +18,7 @@
   * patches/hurd-i386/submitted-net.diff: New patch to factorize net/ files
     between Linux and Hurd.
 
- -- Aurelien Jarno <aurel32@debian.org>  Thu, 14 Jan 2010 06:55:41 +0100
+ -- Aurelien Jarno <aurel32@debian.org>  Thu, 14 Jan 2010 23:19:00 +0100
 
 eglibc (2.10.2-5) unstable; urgency=low
 

Added: glibc-package/trunk/debian/patches/any/cvs-malloc_info-init.diff
===================================================================
--- glibc-package/trunk/debian/patches/any/cvs-malloc_info-init.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/any/cvs-malloc_info-init.diff	2010-01-14 22:21:11 UTC (rev 4082)
@@ -0,0 +1,76 @@
+2010-01-14  Ulrich Drepper  <drepper@redhat.com>
+ 
+	[BZ #11126]
+	* malloc/malloc.c (malloc_info): Initialize malloc if not already
+	done.  Handle empty bin lists.
+ 
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index ea10d17..b43e454 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -6369,16 +6369,19 @@ malloc_info (int options, FILE *fp)
+ 
+     mbinptr bin = bin_at (ar_ptr, 1);
+     struct malloc_chunk *r = bin->fd;
+-    while (r != bin)
++    if (r != NULL)
+       {
+-	++sizes[NFASTBINS].count;
+-	sizes[NFASTBINS].total += r->size;
+-	sizes[NFASTBINS].from = MIN (sizes[NFASTBINS].from, r->size);
+-	sizes[NFASTBINS].to = MAX (sizes[NFASTBINS].to, r->size);
+-	r = r->fd;
++	while (r != bin)
++	  {
++	    ++sizes[NFASTBINS].count;
++	    sizes[NFASTBINS].total += r->size;
++	    sizes[NFASTBINS].from = MIN (sizes[NFASTBINS].from, r->size);
++	    sizes[NFASTBINS].to = MAX (sizes[NFASTBINS].to, r->size);
++	    r = r->fd;
++	  }
++	nblocks += sizes[NFASTBINS].count;
++	avail += sizes[NFASTBINS].total;
+       }
+-    nblocks += sizes[NFASTBINS].count;
+-    avail += sizes[NFASTBINS].total;
+ 
+     for (size_t i = 2; i < NBINS; ++i)
+       {
+@@ -6388,17 +6391,18 @@ malloc_info (int options, FILE *fp)
+ 	sizes[NFASTBINS - 1 + i].to = sizes[NFASTBINS - 1 + i].total
+ 	  = sizes[NFASTBINS - 1 + i].count = 0;
+ 
+-	while (r != bin)
+-	  {
+-	    ++sizes[NFASTBINS - 1 + i].count;
+-	    sizes[NFASTBINS - 1 + i].total += r->size;
+-	    sizes[NFASTBINS - 1 + i].from = MIN (sizes[NFASTBINS - 1 + i].from,
++	if (r != NULL)
++	  while (r != bin)
++	    {
++	      ++sizes[NFASTBINS - 1 + i].count;
++	      sizes[NFASTBINS - 1 + i].total += r->size;
++	      sizes[NFASTBINS - 1 + i].from
++		= MIN (sizes[NFASTBINS - 1 + i].from, r->size);
++	      sizes[NFASTBINS - 1 + i].to = MAX (sizes[NFASTBINS - 1 + i].to,
+ 						 r->size);
+-	    sizes[NFASTBINS - 1 + i].to = MAX (sizes[NFASTBINS - 1 + i].to,
+-					       r->size);
+ 
+-	    r = r->fd;
+-	  }
++	      r = r->fd;
++	    }
+ 
+ 	if (sizes[NFASTBINS - 1 + i].count == 0)
+ 	  sizes[NFASTBINS - 1 + i].from = 0;
+@@ -6460,6 +6464,9 @@ malloc_info (int options, FILE *fp)
+     fputs ("</heap>\n", fp);
+   }
+ 
++  if(__malloc_initialized < 0)
++    ptmalloc_init ();
++
+   fputs ("<malloc version=\"1\">\n", fp);
+ 
+   /* Iterate over all arenas currently in use.  */

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2010-01-14 05:56:42 UTC (rev 4081)
+++ glibc-package/trunk/debian/patches/series	2010-01-14 22:21:11 UTC (rev 4082)
@@ -230,3 +230,4 @@
 any/cvs-resolv-v6mapped.diff
 any/submitted-nis-shadow.diff
 any/local-no-SOCK_NONBLOCK.diff
+any/cvs-malloc_info-init.diff


Reply to: