Bugs item #1082085, was opened at 2004-12-09 08:08 Message generated for change (Comment added) made by tim_one You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1082085&group_id=5470
Category: Python Interpreter Core >Group: Not a Bug Status: Closed >Resolution: Invalid Priority: 7 Submitted By: Andreas Jung (ajung) Assigned to: Nobody/Anonymous (nobody) Summary: PyString_AsString() segfaults when passed a unicode string Initial Comment: If you pass a PyObject representation the unicode string u'\xc4' to PyString_AsString() then Python (2.3.4, 2.4.0) segfault. Famous last words of Python 2.4: Exception exceptions.UnicodeEncodeError: <exceptions.UnicodeEncodeError instance at 0xf6f75e8c> in 'garbage collection' ignored Fatal Python error: unexpected exception during garbage collection Famous last words of Python 2.4 (debug build): XXX undetected error Traceback (most recent call last): File "test.py", line 4, in ? print S.split(u'\xc4') UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 0: ordinal not in range(128) [6545 refs] This bug has been reported first on the zope-dev list. I confirmed that this error does not only occur in Zope but also in a Python-only environment. ---------------------------------------------------------------------- >Comment By: Tim Peters (tim_one) Date: 2004-12-09 10:05 Message: Logged In: YES user_id=31435 For the record, this appeared to be due to an extension module doing PyString_AsString(name)[0] when name was a Unicode string containing a "high-bit" character. PyString_AsString(name) legitimately returned NULL, and bad stuff followed. ---------------------------------------------------------------------- Comment By: Jim Fulton (dcjim) Date: 2004-12-09 09:14 Message: Logged In: YES user_id=73023 I can't reproduce this: >>> ick = u'\xc4' >>> import struct >>> struct.pack(ick) Traceback (most recent call last): File "<stdin>", line 1, in ? UnicodeEncodeError: 'ascii' codec can't encode character u'\xc4' in position 0: ordinal not in range(128) >>> struct.pack(u'i', 1) '\x01\x00\x00\x00' The code that provked this in Zope is buggy., ---------------------------------------------------------------------- Comment By: Anthony Baxter (anthonybaxter) Date: 2004-12-09 09:04 Message: Logged In: YES user_id=29957 Please attach a test case that shows the failure. I can't reproduce it here with the information you've given. ---------------------------------------------------------------------- Comment By: Andreas Jung (ajung) Date: 2004-12-09 08:12 Message: Logged In: YES user_id=11084 This error not only happens with u'\xc4', it happens with *any* string containing a character >0x7f. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1082085&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com