summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2015-01-21 00:29:02 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2015-01-21 00:29:32 -0800
commit88ba49fe356ecbb57f604158c432f1044d50b0bb (patch)
tree0140027f2210cbeb8d18de370e2165c71c755c31 /src
parent3ea1b31f46f21ecfb089628e63187970fdb58d5a (diff)
downloademacs-88ba49fe356ecbb57f604158c432f1044d50b0bb.tar.gz
Fix coding.c subscript error
* coding.c (CODING_ISO_INVOKED_CHARSET): Avoid undefined behavior if CODING_ISO_INVOCATION returns negative.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/coding.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index fcbc7dcc3a9..43e56416e57 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,9 @@
2015-01-21 Paul Eggert <eggert@cs.ucla.edu>
+ Fix coding.c subscript error
+ * coding.c (CODING_ISO_INVOKED_CHARSET):
+ Avoid undefined behavior if CODING_ISO_INVOCATION returns negative.
+
Backport: correct old fix for GTK font selection
* gtkutil.c (xg_get_font): Fix off-by-2 typo.
Fixes: bug#3228
diff --git a/src/coding.c b/src/coding.c
index 77583d0d950..8dc39e74422 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -395,7 +395,8 @@ static Lisp_Object Vbig5_coding_system;
#define CODING_ISO_BOL(coding) \
((coding)->spec.iso_2022.bol)
#define CODING_ISO_INVOKED_CHARSET(coding, plane) \
- CODING_ISO_DESIGNATION ((coding), CODING_ISO_INVOCATION ((coding), (plane)))
+ (CODING_ISO_INVOCATION (coding, plane) < 0 ? -1 \
+ : CODING_ISO_DESIGNATION (coding, CODING_ISO_INVOCATION (coding, plane)))
#define CODING_ISO_CMP_STATUS(coding) \
(&(coding)->spec.iso_2022.cmp_status)
#define CODING_ISO_EXTSEGMENT_LEN(coding) \