]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix coding.c subscript error
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 21 Jan 2015 08:29:02 +0000 (00:29 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 21 Jan 2015 08:29:32 +0000 (00:29 -0800)
* coding.c (CODING_ISO_INVOKED_CHARSET):
Avoid undefined behavior if CODING_ISO_INVOCATION returns negative.

src/ChangeLog
src/coding.c

index fcbc7dcc3a9c4fa7569c0ec1a821943ccf07fefa..43e56416e578164b9e5316d2ca42fd4331658e98 100644 (file)
@@ -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
index 77583d0d9502b27a08a2085d0aed350e0c7dac48..8dc39e7442293d41a62f4334265b6c7f2a970c2e 100644 (file)
@@ -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)      \