]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix malloc_info statistic. Fixes bug 16112
authorOndřej Bílka <neleai@seznam.cz>
Fri, 1 Nov 2013 14:39:26 +0000 (15:39 +0100)
committerOndřej Bílka <neleai@seznam.cz>
Fri, 1 Nov 2013 14:39:26 +0000 (15:39 +0100)
ChangeLog
NEWS
malloc/malloc.c

index 34eacc9322afabfa036da7450c434855bfdde155..7629934aa70766f6eac5e1feba6bd162aad9c9dd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-11-01  Ondřej Bílka  <neleai@seznam.cz>
+
+       [BZ #16112]
+       * malloc/malloc (malloc_info): Do not handle first bin as
+       special case.
+
 2013-11-01  Chris Leonard  <cjl@sugarlabs.org>
 
        * locale/iso-639.def: Add Central Nahuatl (nhn).
diff --git a/NEWS b/NEWS
index f24d3295e039c688712d3d05eb84d81f14729510..38ed4404bafffb929f57fe3ac56048a17320cfb8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -17,7 +17,7 @@ Version 2.19
   15847, 15849, 15855, 15856, 15857, 15859, 15867, 15886, 15887, 15890,
   15892, 15893, 15895, 15897, 15905, 15909, 15917, 15919, 15921, 15923,
   15939, 15948, 15963, 15966, 15988, 16032, 16034, 16036, 16037, 16041,
-  16071, 16072, 16074, 16078.
+  16071, 16072, 16074, 16078, 16112.
 
 * CVE-2012-4412 The strcoll implementation caches indices and rules for
   large collation sequences to optimize multiple passes.  This cache
index 29796fe46186e26e54d45da179cf4bc1b255ed6e..897c43a39d963580f701518c9ecc1cc7b9275942 100644 (file)
@@ -5049,23 +5049,11 @@ malloc_info (int options, FILE *fp)
        sizes[i].total = sizes[i].count * sizes[i].to;
       }
 
-    mbinptr bin = bin_at (ar_ptr, 1);
-    struct malloc_chunk *r = bin->fd;
-    if (r != NULL)
-      {
-       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;
-      }
 
-    for (size_t i = 2; i < NBINS; ++i)
+    mbinptr bin;
+    struct malloc_chunk *r;
+
+    for (size_t i = 1; i < NBINS; ++i)
       {
        bin = bin_at (ar_ptr, i);
        r = bin->fd;