diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_dict.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/test/test_dict.py b/Lib/test/test_dict.py index d5a3d9e..6b8596f 100644 --- a/Lib/test/test_dict.py +++ b/Lib/test/test_dict.py @@ -1324,6 +1324,19 @@ class DictTest(unittest.TestCase): d = {0: set()} (0, X()) in d.items() + def test_dict_contain_use_after_free(self): + # bpo-40489 + class S(str): + def __eq__(self, other): + d.clear() + return NotImplemented + + def __hash__(self): + return hash('test') + + d = {S(): 'value'} + self.assertFalse('test' in d) + def test_init_use_after_free(self): class X: def __hash__(self): |