From 3d07c1ee1d2d475b74816117981d6ec752c26c23 Mon Sep 17 00:00:00 2001 From: Zackery Spytz Date: Sat, 23 Mar 2019 20:23:29 -0600 Subject: bpo-36412: fix a possible crash in dictobject.c's new_dict() (GH-12519) --- .../next/Core and Builtins/2019-03-23-19-51-09.bpo-36412.C7acGn.rst | 1 + Objects/dictobject.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-03-23-19-51-09.bpo-36412.C7acGn.rst diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-03-23-19-51-09.bpo-36412.C7acGn.rst b/Misc/NEWS.d/next/Core and Builtins/2019-03-23-19-51-09.bpo-36412.C7acGn.rst new file mode 100644 index 0000000000..0146988151 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2019-03-23-19-51-09.bpo-36412.C7acGn.rst @@ -0,0 +1 @@ +Fix a possible crash when creating a new dictionary. diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 524ff67837..e2603e190b 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -604,7 +604,9 @@ new_dict(PyDictKeysObject *keys, PyObject **values) mp = PyObject_GC_New(PyDictObject, &PyDict_Type); if (mp == NULL) { dictkeys_decref(keys); - free_values(values); + if (values != empty_values) { + free_values(values); + } return NULL; } } -- cgit v1.2.1