]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] gh-148222: Fix NULL dereference bugs in genericaliasobject.c (GH-148226) ...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sat, 18 Apr 2026 00:47:06 +0000 (02:47 +0200)
committerGitHub <noreply@github.com>
Sat, 18 Apr 2026 00:47:06 +0000 (00:47 +0000)
gh-148222: Fix NULL dereference bugs in genericaliasobject.c (GH-148226)
(cherry picked from commit 634568d030f18183212c01bd4544aa7f97e05442)

Co-authored-by: Prakash Sellathurai <prakashsellathurai@gmail.com>
Misc/NEWS.d/next/Core_and_Builtins/2026-04-07-20-37-23.gh-issue-148222.uF4D4E.rst [new file with mode: 0644]
Objects/genericaliasobject.c

diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-07-20-37-23.gh-issue-148222.uF4D4E.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-07-20-37-23.gh-issue-148222.uF4D4E.rst
new file mode 100644 (file)
index 0000000..2c273fc
--- /dev/null
@@ -0,0 +1 @@
+Fix vectorcall support in :class:`types.GenericAlias` when the underlying type does not support the vectorcall protocol. Fix possible leaks in :class:`types.GenericAlias` and :class:`types.UnionType` in case of memory error.
index 119dd4b5c2dd00a4593de329776ae5305b3d0120..7c518e19c7d2313c1b3455c72bfbe33c583355d3 100644 (file)
@@ -242,7 +242,6 @@ _Py_make_parameters(PyObject *args)
                     len += needed;
                     if (_PyTuple_Resize(&parameters, len) < 0) {
                         Py_DECREF(subparams);
-                        Py_DECREF(parameters);
                         Py_XDECREF(tuple_args);
                         return NULL;
                     }
@@ -647,7 +646,7 @@ ga_vectorcall(PyObject *self, PyObject *const *args,
               size_t nargsf, PyObject *kwnames)
 {
     gaobject *alias = (gaobject *) self;
-    PyObject *obj = PyVectorcall_Function(alias->origin)(alias->origin, args, nargsf, kwnames);
+    PyObject *obj = PyObject_Vectorcall(alias->origin, args, nargsf, kwnames);
     return set_orig_class(obj, self);
 }