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