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: