From: Benjamin Peterson Date: Tue, 16 Aug 2016 05:01:41 +0000 (-0700) Subject: do not decref value borrowed from list (closes #27774) X-Git-Tag: v3.4.6rc1~28^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a27b0857ef6d35911509eef88e567663bb0a0b6;p=thirdparty%2FPython%2Fcpython.git do not decref value borrowed from list (closes #27774) --- diff --git a/Misc/NEWS b/Misc/NEWS index b2f081c83564..8c7acaf6482f 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 b1258eefc497..7b941ffdbc96 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)