]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] Free arena on _PyCompile_AstOptimize failure in Py_CompileStringObject (GH...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 16 Dec 2024 21:26:39 +0000 (22:26 +0100)
committerGitHub <noreply@github.com>
Mon, 16 Dec 2024 21:26:39 +0000 (23:26 +0200)
Free arena on _PyCompile_AstOptimize failure in Py_CompileStringObject (GH-127910)

After commit 10a91d7e9 introduced arena cleanup, commit 2dfbd4f36
removed the free call when _PyCompile_AstOptimize fails.

(cherry picked from commit cfeaa992ba9bad9be2687afcafd85156703d74e8)

Co-authored-by: Berker Peksag <berker.peksag@gmail.com>
Python/pythonrun.c

index 5891d50cd3f598f7cf02784fc7712cc54b7a1b9e..f9daf8168f1c5208e85ff0c2ccfa7d13e23d1319 100644 (file)
@@ -1485,6 +1485,7 @@ Py_CompileStringObject(const char *str, PyObject *filename, int start,
     if (flags && (flags->cf_flags & PyCF_ONLY_AST)) {
         if ((flags->cf_flags & PyCF_OPTIMIZED_AST) == PyCF_OPTIMIZED_AST) {
             if (_PyCompile_AstOptimize(mod, filename, flags, optimize, arena) < 0) {
+                _PyArena_Free(arena);
                 return NULL;
             }
         }