changeset: 102691:424cb9482974 branch: 3.5 parent: 102686:98c86d5a6655 parent: 102690:2e404ac88e0e user: Benjamin Peterson date: Mon Aug 15 22:05:06 2016 -0700 files: Misc/NEWS Modules/_sre.c Modules/clinic/_sre.c.h Modules/sre_lib.h description: merge 3.4 (#27774) diff -r 98c86d5a6655 -r 424cb9482974 Misc/NEWS --- a/Misc/NEWS Mon Aug 15 21:55:37 2016 -0700 +++ b/Misc/NEWS Mon Aug 15 22:05:06 2016 -0700 @@ -42,6 +42,8 @@ - In the curses module, raise an error if window.getstr() or window.instr() is passed a negative value. +- 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 -r 98c86d5a6655 -r 424cb9482974 Modules/_sre.c --- a/Modules/_sre.c Mon Aug 15 21:55:37 2016 -0700 +++ b/Modules/_sre.c Mon Aug 15 22:05:06 2016 -0700 @@ -2196,10 +2196,8 @@ if (!key) goto failed; value = match_getslice(self, key, default_value); - if (!value) { - Py_DECREF(key); + if (!value) goto failed; - } status = PyDict_SetItem(result, key, value); Py_DECREF(value); if (status < 0)