aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2011-06-12 18:38:25 -0700
committerPaul Eggert2011-06-12 18:38:25 -0700
commit8fd02eb7d30a7e0e98cc863e0f3cb81a954fe8a9 (patch)
treee90fd66b1c8fd1620d65b758d541dd648fbe3bc9 /src
parentf8c86b69a8489f33709de6b869be369a34d5adb0 (diff)
downloademacs-8fd02eb7d30a7e0e98cc863e0f3cb81a954fe8a9.tar.gz
emacs-8fd02eb7d30a7e0e98cc863e0f3cb81a954fe8a9.zip
* chartab.c (Fchar_table_range): Use CHARACTERP to check range.
Otherwise, an out-of-range integer could cause undefined behavior on a 64-bit host.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/chartab.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 8f98b251234..db01d9f291f 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,9 @@
12011-06-13 Paul Eggert <eggert@cs.ucla.edu> 12011-06-13 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
4 Otherwise, an out-of-range integer could cause undefined behavior
5 on a 64-bit host.
6
3 * composite.c: Use int, not EMACS_INT, for characters. 7 * composite.c: Use int, not EMACS_INT, for characters.
4 (fill_gstring_body, composition_compute_stop_pos): Use int, not 8 (fill_gstring_body, composition_compute_stop_pos): Use int, not
5 EMACS_INT, for values that are known to be in character range. 9 EMACS_INT, for values that are known to be in character range.
diff --git a/src/chartab.c b/src/chartab.c
index 2f40ceee6ce..ed5b238646e 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -524,15 +524,15 @@ a cons of character codes (for characters in the range), or a character code. *
524 524
525 if (EQ (range, Qnil)) 525 if (EQ (range, Qnil))
526 val = XCHAR_TABLE (char_table)->defalt; 526 val = XCHAR_TABLE (char_table)->defalt;
527 else if (INTEGERP (range)) 527 else if (CHARACTERP (range))
528 val = CHAR_TABLE_REF (char_table, XINT (range)); 528 val = CHAR_TABLE_REF (char_table, XFASTINT (range));
529 else if (CONSP (range)) 529 else if (CONSP (range))
530 { 530 {
531 int from, to; 531 int from, to;
532 532
533 CHECK_CHARACTER_CAR (range); 533 CHECK_CHARACTER_CAR (range);
534 CHECK_CHARACTER_CDR (range); 534 CHECK_CHARACTER_CDR (range);
535 val = char_table_ref_and_range (char_table, XINT (XCAR (range)), 535 val = char_table_ref_and_range (char_table, XFASTINT (XCAR (range)),
536 &from, &to); 536 &from, &to);
537 /* Not yet implemented. */ 537 /* Not yet implemented. */
538 } 538 }