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 + 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) \