diff options
| author | Paul Eggert | 2011-03-27 10:14:11 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-03-27 10:14:11 -0700 |
| commit | ba0165e1f14c55aaba73de35d75a9acea721c825 (patch) | |
| tree | 17c8d4033c0b374cdf779f85c7f94ea72e90f09b /src | |
| parent | 3c59b4c9d671ec0298a8489eabbd09af47039852 (diff) | |
| download | emacs-ba0165e1f14c55aaba73de35d75a9acea721c825.tar.gz emacs-ba0165e1f14c55aaba73de35d75a9acea721c825.zip | |
* keyboard.c (parse_modifiers_uncached, parse_modifiers):
Don't assume string length fits in int.
Diffstat (limited to 'src')
| -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 @@ | |||
| 1 | 2011-03-27 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2011-03-27 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | * keyboard.c (parse_modifiers_uncached, parse_modifiers): | ||
| 4 | Don't assume string length fits in int. | ||
| 5 | |||
| 3 | * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA | 6 | * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA |
| 4 | instead of alloca (Bug#8344). | 7 | instead of alloca (Bug#8344). |
| 5 | 8 | ||
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) | |||
| 5959 | This doesn't use any caches. */ | 5959 | This doesn't use any caches. */ |
| 5960 | 5960 | ||
| 5961 | static int | 5961 | static int |
| 5962 | parse_modifiers_uncached (Lisp_Object symbol, int *modifier_end) | 5962 | parse_modifiers_uncached (Lisp_Object symbol, EMACS_INT *modifier_end) |
| 5963 | { | 5963 | { |
| 5964 | Lisp_Object name; | 5964 | Lisp_Object name; |
| 5965 | int i; | 5965 | EMACS_INT i; |
| 5966 | int modifiers; | 5966 | int modifiers; |
| 5967 | 5967 | ||
| 5968 | CHECK_SYMBOL (symbol); | 5968 | CHECK_SYMBOL (symbol); |
| @@ -5972,7 +5972,7 @@ parse_modifiers_uncached (Lisp_Object symbol, int *modifier_end) | |||
| 5972 | 5972 | ||
| 5973 | for (i = 0; i+2 <= SBYTES (name); ) | 5973 | for (i = 0; i+2 <= SBYTES (name); ) |
| 5974 | { | 5974 | { |
| 5975 | int this_mod_end = 0; | 5975 | EMACS_INT this_mod_end = 0; |
| 5976 | int this_mod = 0; | 5976 | int this_mod = 0; |
| 5977 | 5977 | ||
| 5978 | /* See if the name continues with a modifier word. | 5978 | /* See if the name continues with a modifier word. |
| @@ -6169,7 +6169,7 @@ parse_modifiers (Lisp_Object symbol) | |||
| 6169 | return elements; | 6169 | return elements; |
| 6170 | else | 6170 | else |
| 6171 | { | 6171 | { |
| 6172 | int end; | 6172 | EMACS_INT end; |
| 6173 | int modifiers = parse_modifiers_uncached (symbol, &end); | 6173 | int modifiers = parse_modifiers_uncached (symbol, &end); |
| 6174 | Lisp_Object unmodified; | 6174 | Lisp_Object unmodified; |
| 6175 | Lisp_Object mask; | 6175 | Lisp_Object mask; |