cpython/Lib/test/crashers/modify_dict_attr.py

20 lines
482 B
Python

# http://python.org/sf/1303614
class Y(object):
pass
class type_with_modifiable_dict(type, Y):
pass
class MyClass(object, metaclass=type_with_modifiable_dict):
"""This class has its __dict__ attribute indirectly
exposed via the __dict__ getter/setter of Y.
"""
if __name__ == '__main__':
dictattr = Y.__dict__['__dict__']
dictattr.__delete__(MyClass) # if we set tp_dict to NULL,
print(MyClass) # doing anything with MyClass segfaults