diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2011-03-27 10:14:11 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2011-03-27 10:14:11 -0700 |
commit | ba0165e1f14c55aaba73de35d75a9acea721c825 (patch) | |
tree | 17c8d4033c0b374cdf779f85c7f94ea72e90f09b | |
parent | 3c59b4c9d671ec0298a8489eabbd09af47039852 (diff) | |
download | emacs-ba0165e1f14c55aaba73de35d75a9acea721c825.tar.gz emacs-ba0165e1f14c55aaba73de35d75a9acea721c825.tar.bz2 emacs-ba0165e1f14c55aaba73de35d75a9acea721c825.zip |
* keyboard.c (parse_modifiers_uncached, parse_modifiers):
Don't assume string length fits in int.
-rw-r--r-- | src/ChangeLog | 3 | ||||
-rw-r--r-- | src/keyboard.c | 8 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 6cb8ad8000d..bfee23b16d0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2011-03-27 Paul Eggert <eggert@cs.ucla.edu> + * keyboard.c (parse_modifiers_uncached, parse_modifiers): + Don't assume string length fits in int. + * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA instead of alloca (Bug#8344). diff --git a/src/keyboard.c b/src/keyboard.c index 28d65766664..e29c7e9bc5c 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5959,10 +5959,10 @@ make_lispy_switch_frame (Lisp_Object frame) This doesn't use any caches. */ static int -parse_modifiers_uncached (Lisp_Object symbol, int *modifier_end) +parse_modifiers_uncached (Lisp_Object symbol, EMACS_INT *modifier_end) { Lisp_Object name; - int i; + EMACS_INT i; int modifiers; CHECK_SYMBOL (symbol); @@ -5972,7 +5972,7 @@ parse_modifiers_uncached (Lisp_Object symbol, int *modifier_end) for (i = 0; i+2 <= SBYTES (name); ) { - int this_mod_end = 0; + EMACS_INT this_mod_end = 0; int this_mod = 0; /* See if the name continues with a modifier word. @@ -6169,7 +6169,7 @@ parse_modifiers (Lisp_Object symbol) return elements; else { - int end; + EMACS_INT end; int modifiers = parse_modifiers_uncached (symbol, &end); Lisp_Object unmodified; Lisp_Object mask; |