diff options
Diffstat (limited to 'Lib/test/crashers/gc_has_finalizer.py')
-rw-r--r-- | Lib/test/crashers/gc_has_finalizer.py | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/Lib/test/crashers/gc_has_finalizer.py b/Lib/test/crashers/gc_has_finalizer.py deleted file mode 100644 index 737959bb9b5..00000000000 --- a/Lib/test/crashers/gc_has_finalizer.py +++ /dev/null @@ -1,36 +0,0 @@ -""" -The gc module can still invoke arbitrary Python code and crash. -This is an attack against _PyInstance_Lookup(), which is documented -as follows: - - The point of this routine is that it never calls arbitrary Python - code, so is always "safe": all it does is dict lookups. - -But of course dict lookups can call arbitrary Python code. -The following code causes mutation of the object graph during -the call to has_finalizer() in gcmodule.c, and that might -segfault. -""" - -import gc - - -class A: - def __hash__(self): - return hash("__del__") - def __eq__(self, other): - del self.other - return False - -a = A() -b = A() - -a.__dict__[b] = 'A' - -a.other = b -b.other = a - -gc.collect() -del a, b - -gc.collect() |