]> granicus.if.org Git - python/commitdiff
bpo-36745: Fix a possible reference leak in PyObject_SetAttr() (GH-12993)
authorZackery Spytz <zspytz@gmail.com>
Sun, 28 Apr 2019 12:58:52 +0000 (06:58 -0600)
committerMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 28 Apr 2019 12:58:52 +0000 (05:58 -0700)
https://bugs.python.org/issue36745

Objects/object.c

index e7ec7aec490f8b35081ff4083599b7123128c632..589bf365e870fdfb9a9fb9723ad1673cf0075c5c 100644 (file)
@@ -1044,8 +1044,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;