From 0f3596a1362a0d4bbf5daa85decb9a25b0980f52 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Mon, 15 Aug 2016 22:01:41 -0700 Subject: [PATCH] do not decref value borrowed from list (closes #27774) --- Misc/NEWS | 2 ++ Modules/_sre.c | 4 +--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Misc/NEWS b/Misc/NEWS index 417da1397323..ce599cde984d 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. - In the curses module, raise an error if window.getstr() or window.instr() is diff --git a/Modules/_sre.c b/Modules/_sre.c index 829fb6bdcc87..8e16c1d140ad 100644 --- a/Modules/_sre.c +++ b/Modules/_sre.c @@ -3438,10 +3438,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) -- 2.47.3