summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYury Selivanov <yury@magic.io>2016-11-09 14:43:08 (GMT)
committerYury Selivanov <yury@magic.io>2016-11-09 14:43:08 (GMT)
commit6c1065061770e843f55be0506489c931a2cb7e96 (patch)
treeaadd359f20cd80d8e8521cbfb414410584a11415
parentbafd4f256069e3ba83fc946bdd7e6698cad32361 (diff)
parentd2fd3599abeed393ccdf4ee5cf1c7b346ba4a022 (diff)
downloadcpython-6c1065061770e843f55be0506489c931a2cb7e96.zip
cpython-6c1065061770e843f55be0506489c931a2cb7e96.tar.gz
cpython-6c1065061770e843f55be0506489c931a2cb7e96.tar.bz2
Merge 3.5 (issue #27942)
-rw-r--r--Misc/NEWS2
-rw-r--r--Objects/codeobject.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index d787a29..6b77ffe 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -588,6 +588,8 @@ Core and Builtins
- Issue #28008: Implement PEP 530 -- asynchronous comprehensions.
+- Issue #27942: Fix memory leak in codeobject.c
+
Library
-------
diff --git a/Objects/codeobject.c b/Objects/codeobject.c
index b6e5bd3..f7f91a8 100644
--- a/Objects/codeobject.c
+++ b/Objects/codeobject.c
@@ -77,6 +77,7 @@ intern_string_constants(PyObject *tuple)
intern_string_constants(v);
}
else if (PyFrozenSet_CheckExact(v)) {
+ PyObject *w = v;
PyObject *tmp = PySequence_Tuple(v);
if (tmp == NULL) {
PyErr_Clear();
@@ -89,6 +90,7 @@ intern_string_constants(PyObject *tuple)
}
else {
PyTuple_SET_ITEM(tuple, i, v);
+ Py_DECREF(w);
modified = 1;
}
}