aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2011-07-28 13:30:20 -0700
committerPaul Eggert2011-07-28 13:30:20 -0700
commit17828df2d81aef1c7886cddd881ad6f67f1e4abe (patch)
treec19c0d40496b48dea46518df8532f5fc38a09bf2 /src
parent69e8622f7f852f63b8f71c5b1aa4c2fd406e383d (diff)
downloademacs-17828df2d81aef1c7886cddd881ad6f67f1e4abe.tar.gz
emacs-17828df2d81aef1c7886cddd881ad6f67f1e4abe.zip
* character.c (Fstring): Check for size-calculation overflow.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog2
-rw-r--r--src/character.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b35f5607619..9f50e928fac 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,7 @@
12011-07-28 Paul Eggert <eggert@cs.ucla.edu> 12011-07-28 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 * character.c (Fstring): Check for size-calculation overflow.
4
3 * ccl.c: Integer and memory overflow fixes. 5 * ccl.c: Integer and memory overflow fixes.
4 (Fccl_execute_on_string): Check for memory overflow. 6 (Fccl_execute_on_string): Check for memory overflow.
5 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do. 7 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
diff --git a/src/character.c b/src/character.c
index 5e2eccf54db..50b5b252871 100644
--- a/src/character.c
+++ b/src/character.c
@@ -902,6 +902,8 @@ usage: (string &rest CHARACTERS) */)
902 Lisp_Object str; 902 Lisp_Object str;
903 USE_SAFE_ALLOCA; 903 USE_SAFE_ALLOCA;
904 904
905 if (min (PTRDIFF_MAX, SIZE_MAX) / MAX_MULTIBYTE_LENGTH < n)
906 memory_full (SIZE_MAX);
905 SAFE_ALLOCA (buf, unsigned char *, MAX_MULTIBYTE_LENGTH * n); 907 SAFE_ALLOCA (buf, unsigned char *, MAX_MULTIBYTE_LENGTH * n);
906 p = buf; 908 p = buf;
907 909