summaryrefslogtreecommitdiff
path: root/src/minibuf.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-04-02 00:40:13 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2011-04-02 00:40:13 -0700
commita37c69bff68c15220b7f737a721ff7e1d3291b9e (patch)
tree0f1fcc8b7c60afcc2f8a276dc1fe72984c985d08 /src/minibuf.c
parent328ab8e7b550b2d3ae188c0ddfb174db32b0387c (diff)
downloademacs-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.c4
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);
}