]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] GH-141212: Fix possible memory leak in gc_mark_span_push (gh-141213) (gh-141364)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 10 Nov 2025 16:55:01 +0000 (17:55 +0100)
committerGitHub <noreply@github.com>
Mon, 10 Nov 2025 16:55:01 +0000 (16:55 +0000)
(cherry picked from commit f835552946e29ec20144c359b8822f9e421d4d64)

Co-authored-by: Sergey Miryanov <sergey.miryanov@gmail.com>
Python/gc_free_threading.c

index 5aaa68c5b51f95618f8dfb7963813844036020c5..94c77991f5f45b84464af98531f0a1960ea0794b 100644 (file)
@@ -675,10 +675,11 @@ gc_mark_span_push(gc_span_stack_t *ss, PyObject **start, PyObject **end)
         else {
             ss->capacity *= 2;
         }
-        ss->stack = (gc_span_t *)PyMem_Realloc(ss->stack, ss->capacity * sizeof(gc_span_t));
-        if (ss->stack == NULL) {
+        gc_span_t *new_stack = (gc_span_t *)PyMem_Realloc(ss->stack, ss->capacity * sizeof(gc_span_t));
+        if (new_stack == NULL) {
             return -1;
         }
+        ss->stack = new_stack;
     }
     assert(end > start);
     ss->stack[ss->size].start = start;