aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2011-07-28 18:01:17 -0700
committerPaul Eggert2011-07-28 18:01:17 -0700
commitea8a7d00f9678471e960117b0b87318dcf4e7d81 (patch)
treed015b06f00d21126db616f6945bf79e89d6a1d14
parentc86960f076fd12d743da2b30768323efb9c22bbf (diff)
downloademacs-ea8a7d00f9678471e960117b0b87318dcf4e7d81.tar.gz
emacs-ea8a7d00f9678471e960117b0b87318dcf4e7d81.zip
* minibuf.c (read_minibuf_noninteractive): Don't leak memory
on memory overflow.
-rw-r--r--src/ChangeLog3
-rw-r--r--src/minibuf.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 435d883e14f..4e10537edc8 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,8 @@
12011-07-29 Paul Eggert <eggert@cs.ucla.edu> 12011-07-29 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 * minibuf.c (read_minibuf_noninteractive): Don't leak memory
4 on memory overflow.
5
3 * macros.c: Integer and memory overflow fixes. 6 * macros.c: Integer and memory overflow fixes.
4 (Fstart_kbd_macro): Don't update size until alloc done. 7 (Fstart_kbd_macro): Don't update size until alloc done.
5 (store_kbd_macro_char): Reorder multiplicands to avoid overflow. 8 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
diff --git a/src/minibuf.c b/src/minibuf.c
index eb564a10ec6..30082af9037 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -261,7 +261,10 @@ read_minibuf_noninteractive (Lisp_Object map, Lisp_Object initial,
261 if (len == size) 261 if (len == size)
262 { 262 {
263 if (STRING_BYTES_BOUND / 2 < size) 263 if (STRING_BYTES_BOUND / 2 < size)
264 memory_full (SIZE_MAX); 264 {
265 xfree (line);
266 memory_full (SIZE_MAX);
267 }
265 size *= 2; 268 size *= 2;
266 line = (char *) xrealloc (line, size); 269 line = (char *) xrealloc (line, size);
267 } 270 }