[Python-Dev] PyObject_IsInstance is dangerous
Serhiy Storchaka
storchaka at gmail.com
Mon May 18 14:34:15 CEST 2015
On 18.05.15 15:14, Greg Ewing wrote:
> Serhiy Storchaka wrote:
>> PyObject_IsInstance is not safe when used to check if the object is an
>> instance of specified builtin type.
>>
>> The __class__ attribute can be modified and PyObject_IsInstance() can
>> return true if the object has not layout compatible with specified
>> structure.
>
> Code that requires a particular C layout should be using
> PyObject_TypeCheck, not PyObject_IsInstance.
Thank you. I didn't know about this helper.
Looks as most (if not all) usages of PyObject_IsInstance are not
correct. May be modify PyObject_IsInstance so that it will never return
true if layouts are not compatible?
More information about the Python-Dev
mailing list