Issue 1005078: iso-2022-jp crashes - Python tracker (original) (raw)

I get

Python 2.4a2 (#88, Aug 7 2004, 12:37:23) [GCC 3.3.4 (Debian 1:3.3.4-7)] on linux2 Type "help", "copyright", "credits" or "license" for more information.

u"a\u9808".encode("iso-2022-jp") Segmentation fault

The gdb backtrace is

#0 0x4047f45f in jisx0208_encoder (data=0x98080061, length=0xbfffde1c) at /home/martin/work/py2.4/Modules/cjkcodecs/_codecs_iso2022.c:632 #1 0x4047e915 in iso2022_encode (state=0xbfffdec8, config=0x40481964, inbuf=0xbfffde60, inleft=2, outbuf=0xbfffde6c, outleft=20, flags=3) at /home/martin/work/py2.4/Modules/cjkcodecs/_codecs_iso2022.c:187 #2 0x404835f9 in multibytecodec_encode (codec=0x40481be4, state=0xbfffdec8, data=0xbfffdec4, datalen=2550661217, errors=0x1, flags=3) at /home/martin/work/py2.4/Modules/cjkcodecs/multibytecodec.c:432 #3 0x40483e24 in MultibyteCodec_Encode (self=0x4029d070, args=0x98080061, kwargs=0x98080061) at /home/martin/work/py2.4/Modules/cjkcodecs/multibytecodec.c:512 #4 0x081041fe in PyCFunction_Call (func=0x402ce24c, arg=0x402ce12c, kw=0x4052a2a0) at Objects/methodobject.c:77

It crashes on line 632:

632 else TRYMAP_ENC(jisxcommon, coded, *data) {

because data does not point to valid memory.