Fix a potentially invalid memory access of CJKCodecs' shift-jis

decoder.  (found by Neal Norwitz)
This commit is contained in:
Hye-Shik Chang 2006-06-05 00:59:54 +00:00
parent 06c5c00819
commit 58ce5bc14c
2 changed files with 4 additions and 1 deletions

View File

@ -75,6 +75,8 @@ Core and builtins
Extension Modules Extension Modules
----------------- -----------------
- Fixed a potentially invalid memory access of CJKCodecs' shift-jis decoder.
- Patch #1478788 (modified version): The functional extension module has - Patch #1478788 (modified version): The functional extension module has
been renamed to _functools and a functools Python wrapper module added. been renamed to _functools and a functools Python wrapper module added.
This provides a home for additional function related utilities that are This provides a home for additional function related utilities that are

View File

@ -639,10 +639,11 @@ DECODER(shift_jis_2004)
REQUIRE_OUTBUF(1) REQUIRE_OUTBUF(1)
JISX0201_DECODE(c, **outbuf) JISX0201_DECODE(c, **outbuf)
else if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xfc)){ else if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xfc)){
unsigned char c1, c2 = IN2; unsigned char c1, c2;
ucs4_t code; ucs4_t code;
REQUIRE_INBUF(2) REQUIRE_INBUF(2)
c2 = IN2;
if (c2 < 0x40 || (c2 > 0x7e && c2 < 0x80) || c2 > 0xfc) if (c2 < 0x40 || (c2 > 0x7e && c2 < 0x80) || c2 > 0xfc)
return 2; return 2;