From ba0165e1f14c55aaba73de35d75a9acea721c825 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 27 Mar 2011 10:14:11 -0700 Subject: [PATCH] * keyboard.c (parse_modifiers_uncached, parse_modifiers): Don't assume string length fits in int. --- src/ChangeLog | 3 +++ 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 + * 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; -- 2.39.5