]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-139817: Fix refleak in TypeAliasType(qualname=non_string) (GH-140197)
authorPetr Viktorin <encukou@gmail.com>
Thu, 16 Oct 2025 11:04:04 +0000 (13:04 +0200)
committerGitHub <noreply@github.com>
Thu, 16 Oct 2025 11:04:04 +0000 (11:04 +0000)
Objects/typevarobject.c

index 8a3a1e9834583a778b8858ad6f82ad4e4ed6bc81..75a69d4bc3e019521a31e0d4c1eb10648121cac9 100644 (file)
@@ -2123,11 +2123,6 @@ typealias_new_impl(PyTypeObject *type, PyObject *name, PyObject *value,
         return NULL;
     }
 
-    PyObject *module = caller();
-    if (module == NULL) {
-        return NULL;
-    }
-
     if (qualname == NULL || qualname == Py_None) {
         // If qualname was not set directly, we use name instead.
         qualname = name;
@@ -2138,6 +2133,11 @@ typealias_new_impl(PyTypeObject *type, PyObject *name, PyObject *value,
         }
     }
 
+    PyObject *module = caller();
+    if (module == NULL) {
+        return NULL;
+    }
+
     PyObject *ta = (PyObject *)typealias_alloc(
         name, qualname, checked_params, NULL, value, module);
     Py_DECREF(module);