(Fput_char_attribute): Check each element of VALUE is a byte if
authortomo <tomo>
Sat, 13 Nov 1999 21:52:20 +0000 (21:52 +0000)
committertomo <tomo>
Sat, 13 Nov 1999 21:52:20 +0000 (21:52 +0000)
ATTRIBUTE is a coded-charset or its name.

src/mule-charset.c

index 6daf6af..d093f54 100644 (file)
@@ -571,9 +571,11 @@ Store CHARACTER's ATTRIBUTE with VALUE.
          Lisp_Object ei = Fcar (rest);
          
          if (!INTP (ei))
-           signal_simple_error ("Invalid value for coded-charset",
-                                value);
-         i = XINT (ei) - XCHARSET_BYTE_OFFSET (ccs);
+           signal_simple_error ("Invalid value for coded-charset", value);
+         i = XINT (ei);
+         if ((i < 0) || (255 < i))
+           signal_simple_error ("Invalid value for coded-charset", value);
+         i -= XCHARSET_BYTE_OFFSET (ccs);
          nv = XVECTOR_DATA(v)[i];
          rest = Fcdr (rest);
          if (CONSP (rest))