aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOndřej Bílka <neleai@seznam.cz>2013-11-01 15:39:26 +0100
committerOndřej Bílka <neleai@seznam.cz>2013-11-01 15:39:26 +0100
commit8b35e35d0f4eae28a47c23e2aa15ddf570fa86ef (patch)
tree4b9a50c8756f620f890cd88d6e93bba30151bea3
parent8f5de63892b491856400a394632b46c3b1be642d (diff)
downloadglibc-8b35e35d0f4eae28a47c23e2aa15ddf570fa86ef.zip
glibc-8b35e35d0f4eae28a47c23e2aa15ddf570fa86ef.tar.gz
glibc-8b35e35d0f4eae28a47c23e2aa15ddf570fa86ef.tar.bz2
Fix malloc_info statistic. Fixes bug 16112
-rw-r--r--ChangeLog6
-rw-r--r--NEWS2
-rw-r--r--malloc/malloc.c20
3 files changed, 11 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 34eacc9..7629934 100644
--- 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 f24d329..38ed440 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 29796fe..897c43a 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;