From: Petr Viktorin Date: Thu, 16 Oct 2025 11:04:04 +0000 (+0200) Subject: gh-139817: Fix refleak in TypeAliasType(qualname=non_string) (GH-140197) X-Git-Tag: v3.15.0a2~418 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ea4cc585cd12ed73e5fe9978f943ceff5bb5cd51;p=thirdparty%2FPython%2Fcpython.git gh-139817: Fix refleak in TypeAliasType(qualname=non_string) (GH-140197) --- diff --git a/Objects/typevarobject.c b/Objects/typevarobject.c index 8a3a1e983458..75a69d4bc3e0 100644 --- a/Objects/typevarobject.c +++ b/Objects/typevarobject.c @@ -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);