diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2011-04-02 00:40:13 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2011-04-02 00:40:13 -0700 |
commit | a37c69bff68c15220b7f737a721ff7e1d3291b9e (patch) | |
tree | 0f1fcc8b7c60afcc2f8a276dc1fe72984c985d08 /src/minibuf.c | |
parent | 328ab8e7b550b2d3ae188c0ddfb174db32b0387c (diff) | |
download | emacs-a37c69bff68c15220b7f737a721ff7e1d3291b9e.tar.gz |
* minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
Check for integer overflow on size calculations.
Diffstat (limited to 'src/minibuf.c')
-rw-r--r-- | src/minibuf.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/minibuf.c b/src/minibuf.c index 4adf665f8f4..54cb9c1acd7 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -229,7 +229,7 @@ read_minibuf_noninteractive (Lisp_Object map, Lisp_Object initial, Lisp_Object defalt, int allow_props, int inherit_input_method) { - int size, len; + size_t size, len; char *line, *s; Lisp_Object val; @@ -244,6 +244,8 @@ read_minibuf_noninteractive (Lisp_Object map, Lisp_Object initial, && (len = strlen (line), len == size - 1 && line[len - 1] != '\n')) { + if ((size_t) -1 / 2 < size) + memory_full (); size *= 2; line = (char *) xrealloc (line, size); } |