From: Dong-hee Na Date: Mon, 4 May 2020 17:30:42 +0000 (+0900) Subject: bpo-40489: Add test case for dict contain use after free (GH-19906) X-Git-Tag: v3.9.0b1~185 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=785f5e6d674306052bf865677d885c30561985ae;p=thirdparty%2FPython%2Fcpython.git bpo-40489: Add test case for dict contain use after free (GH-19906) --- diff --git a/Lib/test/test_dict.py b/Lib/test/test_dict.py index d5a3d9e89457..6b8596fff6a9 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):