Issue #18339: Negative ints keys in unpickler.memo dict no longer cause a

segfault inside the _pickle C extension.
This commit is contained in:
Christian Heimes 2013-07-01 15:18:49 +02:00
commit bfafab1849
3 changed files with 15 additions and 0 deletions

View file

@ -115,6 +115,13 @@ if has_c_implementation:
pickler_class = _pickle.Pickler
unpickler_class = _pickle.Unpickler
def test_issue18339(self):
unpickler = self.unpickler_class(io.BytesIO())
self.assertRaises(TypeError, setattr, unpickler, "memo", object)
# used to cause a segfault
self.assertRaises(ValueError, setattr, unpickler, "memo", {-1: None})
unpickler.memo = {1: None}
class CDispatchTableTests(AbstractDispatchTableTests):
pickler_class = pickle.Pickler
def get_dispatch_table(self):