about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--NEWS8
-rw-r--r--malloc/arena.c2
3 files changed, 11 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index b502c78f89..19cccdce62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-06-26  Mel Gorman  <mgorman@suse.de>
+
+	[BZ #18502]
+	* malloc/arena.c (heap_trim): Don't try to shrink a heap that is
+	already minimal.
+
 2015-06-26  Matthew Fortune  <matthew.fortune@imgtec.com>
 
 	* elf/elf.h (DT_MIPS_RLD_MAP_REL): New macro.
diff --git a/NEWS b/NEWS
index 24f8c27138..6bfb82275d 100644
--- a/NEWS
+++ b/NEWS
@@ -22,10 +22,10 @@ Version 2.22
   18217, 18219, 18220, 18221, 18234, 18244, 18245, 18247, 18287, 18319,
   18324, 18333, 18346, 18371, 18397, 18409, 18410, 18412, 18418, 18422,
   18434, 18444, 18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497,
-  18498, 18507, 18512, 18513, 18519, 18520, 18522, 18527, 18528, 18529,
-  18530, 18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545,
-  18546, 18547, 18549, 18553, 18558, 18569, 18583, 18585, 18586, 18593,
-  18594, 18602.
+  18498, 18502, 18507, 18512, 18513, 18519, 18520, 18522, 18527, 18528,
+  18529, 18530, 18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544,
+  18545, 18546, 18547, 18549, 18553, 18558, 18569, 18583, 18585, 18586,
+  18593, 18594, 18602.
 
 * Cache information can be queried via sysconf() function on s390 e.g. with
   _SC_LEVEL1_ICACHE_SIZE as argument.
diff --git a/malloc/arena.c b/malloc/arena.c
index 2466697d1a..21ecc5a137 100644
--- a/malloc/arena.c
+++ b/malloc/arena.c
@@ -699,7 +699,7 @@ heap_trim (heap_info *heap, size_t pad)
      by preserving the top pad and at least a page.  */
   top_size = chunksize (top_chunk);
   top_area = top_size - MINSIZE - 1;
-  if (top_area <= pad)
+  if (top_area < 0 || (size_t) top_area <= pad)
     return 0;
 
   extra = ALIGN_DOWN(top_area - pad, pagesz);