cpython: eed36e19f8b8 (original) (raw)

Mercurial > cpython

changeset 99356:eed36e19f8b8 3.4

Issue #24097: Fixed crash in object.__reduce__() if slot name is freed inside __getattr__. Original patch by Antoine Pitrou. [#24097]

Serhiy Storchaka storchaka@gmail.com
date Wed, 25 Nov 2015 18:33:29 +0200
parents 8d9a0540adf9
children 99839a1c9c6d e5eac1d692ad
files Lib/test/test_descr.py Misc/NEWS Objects/typeobject.c
diffstat 3 files changed, 23 insertions(+), 0 deletions(-)[+] [-] Lib/test/test_descr.py 17 Misc/NEWS 3 Objects/typeobject.c 3

line wrap: on

line diff

--- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -4988,6 +4988,23 @@ class PicklingTests(unittest.TestCase): objcopy2 = deepcopy(objcopy) self._assert_is_copy(obj, objcopy2)

+

+ class SharedKeyTests(unittest.TestCase):

--- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,9 @@ Release date: tba Core and Builtins ----------------- +- Issue #24097: Fixed crash in object.reduce() if slot name is freed inside

--- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -3768,8 +3768,10 @@ Py_LOCAL(PyObject *) PyObject *name, *value; name = PyList_GET_ITEM(slotnames, i);

@@ -3778,6 +3780,7 @@ Py_LOCAL(PyObject *) } else { int err = PyDict_SetItem(slots, name, value);