Message242391
Here is simpler reproducer:
import codecs
class X(str):
__class__ = UnicodeEncodeError
codecs.ignore_errors(X())
The problem is that PyObject_IsInstance() is fooled by custom __class__, but then builtin error handlers handle error object as having UnicodeEncodeError layout, while it doesn't.
Here is a patch that fixes the issue by using PyObject_IsSubclass() of exc->ob_type instead of PyObject_IsInstance(). |
|
Date |
User |
Action |
Args |
2015-05-02 11:42:23 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, lemburg, doerwalter, vstinner, christian.heimes, ezio.melotti, pkt |
2015-05-02 11:42:23 | serhiy.storchaka | set | messageid: <1430566943.66.0.184436382763.issue24102@psf.upfronthosting.co.za> |
2015-05-02 11:42:23 | serhiy.storchaka | link | issue24102 messages |
2015-05-02 11:42:23 | serhiy.storchaka | create | |
|