]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-121390: tracemalloc: Fix tracebacks memory leak (GH-121391) (#121393)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 5 Jul 2024 06:59:06 +0000 (08:59 +0200)
committerGitHub <noreply@github.com>
Fri, 5 Jul 2024 06:59:06 +0000 (06:59 +0000)
gh-121390: tracemalloc: Fix tracebacks memory leak (GH-121391)

The tracemalloc_tracebacks hash table has traceback keys and NULL
values, but its destructors do not reflect this -- key_destroy_func is
NULL while value_destroy_func is raw_free. Swap these to free the
traceback keys instead.
(cherry picked from commit db39bc42f90c151b298f97b780e62703adbf1221)

Co-authored-by: Josh Brobst <jbrobst@proton.me>
Python/tracemalloc.c

index bc765623522288c87536d3eac173be563d089ef1..e13064bd145e8e3f1c422f89bcd28321e01dc746 100644 (file)
@@ -836,7 +836,7 @@ _PyTraceMalloc_Init(void)
 
     tracemalloc_tracebacks = hashtable_new(hashtable_hash_traceback,
                                            hashtable_compare_traceback,
-                                           NULL, raw_free);
+                                           raw_free, NULL);
 
     tracemalloc_traces = tracemalloc_create_traces_table();
     tracemalloc_domains = tracemalloc_create_domains_table();