Home | History | Annotate | Download | only in crashers
      1 """
      2 _PyType_Lookup() returns a borrowed reference.
      3 This attacks PyObject_GenericSetAttr().
      4 
      5 NB. on my machine this crashes in 2.5 debug but not release.
      6 """
      7 
      8 class A(object):
      9     pass
     10 
     11 class B(object):
     12     def __del__(self):
     13         print "hi"
     14         del C.d
     15 
     16 class D(object):
     17     def __set__(self, obj, value):
     18         self.hello = 42
     19 
     20 class C(object):
     21     d = D()
     22 
     23     def g():
     24         pass
     25 
     26 
     27 c = C()
     28 a = A()
     29 a.cycle = a
     30 a.other = B()
     31 
     32 lst = [None] * 1000000
     33 i = 0
     34 del a
     35 while 1:
     36     c.d = 42         # segfaults in PyMethod_New(im_func=D.__set__, im_self=d)
     37     lst[i] = c.g     # consume the free list of instancemethod objects
     38     i += 1
     39