summaryrefslogtreecommitdiff
path: root/src/bidi.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2015-02-08 18:14:14 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2015-02-08 18:14:41 -0800
commit237171731157095f5cc46b0f6f6205e3b4ba9f00 (patch)
tree90a29c2ccdf8fb597f5eb72d85d46535b9309589 /src/bidi.c
parent751adc4b9631cedcf9bec475afe40da4db7d74a1 (diff)
downloademacs-237171731157095f5cc46b0f6f6205e3b4ba9f00.tar.gz
Fix bidi_explicit_dir_char undefined behavior
* bidi.c (bidi_explicit_dir_char): Avoid subscript error when argument is BIDI_EOB. This can happen in bidi_level_of_next_char.
Diffstat (limited to 'src/bidi.c')
-rw-r--r--src/bidi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/bidi.c b/src/bidi.c
index cbc1820c2a5..e5e08c6a252 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -1799,6 +1799,11 @@ bidi_explicit_dir_char (int ch)
if (!bidi_initialized)
emacs_abort ();
+ if (ch < 0)
+ {
+ eassert (ch == BIDI_EOB);
+ return false;
+ }
ch_type = (bidi_type_t) XINT (CHAR_TABLE_REF (bidi_type_table, ch));
return (ch_type == LRE || ch_type == LRO
|| ch_type == RLE || ch_type == RLO