]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-36745: Fix a possible reference leak in PyObject_SetAttr() (GH-12993)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 28 Apr 2019 13:17:40 +0000 (06:17 -0700)
committerGitHub <noreply@github.com>
Sun, 28 Apr 2019 13:17:40 +0000 (06:17 -0700)
https://bugs.python.org/issue36745
(cherry picked from commit e0dcb85b7d64153d1741698c04a6736c9669603a)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
Objects/object.c

index 420af9465b5c7b7f50be47d3eed7708bafa21712..8a3f8831d6e92a5b8db06efe6733a8df4b02a428 100644 (file)
@@ -1017,8 +1017,10 @@ PyObject_SetAttr(PyObject *v, PyObject *name, PyObject *value)
     }
     if (tp->tp_setattr != NULL) {
         const char *name_str = PyUnicode_AsUTF8(name);
-        if (name_str == NULL)
+        if (name_str == NULL) {
+            Py_DECREF(name);
             return -1;
+        }
         err = (*tp->tp_setattr)(v, (char *)name_str, value);
         Py_DECREF(name);
         return err;