[Python-checkins] cpython (3.6): Issue #26182: Fix ia refleak in code that raises DeprecationWarning.

yury.selivanov python-checkins at python.org
Tue Nov 8 16:54:48 EST 2016


https://hg.python.org/cpython/rev/7a996e826f83
changeset:   104987:7a996e826f83
branch:      3.6
parent:      104985:f7308820bb7a
user:        Yury Selivanov <yury at magic.io>
date:        Tue Nov 08 16:54:18 2016 -0500
summary:
  Issue #26182: Fix ia refleak in code that raises DeprecationWarning.

files:
  Misc/NEWS    |  2 ++
  Python/ast.c |  8 +++++---
  2 files changed, 7 insertions(+), 3 deletions(-)


diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -18,6 +18,8 @@
   should result in PendingDeprecationWarning in 3.5 and in
   DeprecationWarning in 3.6.
 
+- Issue #26182: Fix ia refleak in code that raises DeprecationWarning.
+
 Library
 -------
 
diff --git a/Python/ast.c b/Python/ast.c
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -944,17 +944,19 @@
         PyObject *message = PyUnicode_FromString(
             "'async' and 'await' will become reserved keywords"
             " in Python 3.7");
+        int ret;
         if (message == NULL) {
             return 1;
         }
-        if (PyErr_WarnExplicitObject(
+        ret = PyErr_WarnExplicitObject(
                 PyExc_DeprecationWarning,
                 message,
                 c->c_filename,
                 LINENO(n),
                 NULL,
-                NULL) < 0)
-        {
+                NULL);
+        Py_DECREF(message);
+        if (ret < 0) {
             return 1;
         }
     }

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list