summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2016-08-16 05:01:41 (GMT)
committerBenjamin Peterson <benjamin@python.org>2016-08-16 05:01:41 (GMT)
commit3a27b0857ef6d35911509eef88e567663bb0a0b6 (patch)
tree7ebb4abf7c82f3c1535d8660fbd9dabb355a4b23
parent4f976513efd8d411126e09d036842d0691c49c82 (diff)
downloadcpython-3a27b0857ef6d35911509eef88e567663bb0a0b6.zip
cpython-3a27b0857ef6d35911509eef88e567663bb0a0b6.tar.gz
cpython-3a27b0857ef6d35911509eef88e567663bb0a0b6.tar.bz2
do not decref value borrowed from list (closes #27774)
-rw-r--r--Misc/NEWS2
-rw-r--r--Modules/_sre.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index b2f081c..8c7acaf 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -29,6 +29,8 @@ Core and Builtins
Library
-------
+- Issue #27774: Fix possible Py_DECREF on unowned object in _sre.
+
- Issue #27760: Fix possible integer overflow in binascii.b2a_qp.
- Issue #27758: Fix possible integer overflow in the _csv module for large record
diff --git a/Modules/_sre.c b/Modules/_sre.c
index b1258ee..7b941ff 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -3401,10 +3401,8 @@ match_groupdict(MatchObject* self, PyObject* args, PyObject* kw)
if (!key)
goto failed;
value = match_getslice(self, key, def);
- if (!value) {
- Py_DECREF(key);
+ if (!value)
goto failed;
- }
status = PyDict_SetItem(result, key, value);
Py_DECREF(value);
if (status < 0)