From 8b35e35d0f4eae28a47c23e2aa15ddf570fa86ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20B=C3=ADlka?= Date: Fri, 1 Nov 2013 15:39:26 +0100 Subject: [PATCH] Fix malloc_info statistic. Fixes bug 16112 --- ChangeLog | 6 ++++++ NEWS | 2 +- malloc/malloc.c | 20 ++++---------------- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 34eacc9322..7629934aa7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2013-11-01 Ondřej Bílka + + [BZ #16112] + * malloc/malloc (malloc_info): Do not handle first bin as + special case. + 2013-11-01 Chris Leonard * locale/iso-639.def: Add Central Nahuatl (nhn). diff --git a/NEWS b/NEWS index f24d3295e0..38ed4404ba 100644 --- 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 diff --git a/malloc/malloc.c b/malloc/malloc.c index 29796fe461..897c43a39d 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -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;