* editfns.c (Finsert_char): Don't dump core with very negative counts.

This commit is contained in:
Paul Eggert 2011-06-16 10:25:16 -07:00
parent 599a9e4f7c
commit 2e6813b0a5
2 changed files with 4 additions and 2 deletions

View file

@ -1,5 +1,7 @@
2011-06-16 Paul Eggert <eggert@cs.ucla.edu>
* editfns.c (Finsert_char): Don't dump core with very negative counts.
* insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
* insdel.c, lisp.h (buffer_overflow): New function.

View file

@ -2343,11 +2343,11 @@ from adjoining text, if those properties are sticky. */)
len = CHAR_STRING (c, str);
else
str[0] = c, len = 1;
if (XINT (count) <= 0)
return Qnil;
if (BUF_BYTES_MAX / len < XINT (count))
buffer_overflow ();
n = XINT (count) * len;
if (n <= 0)
return Qnil;
stringlen = min (n, 256 * len);
string = (char *) alloca (stringlen);
for (i = 0; i < stringlen; i++)