]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-121390: tracemalloc: Fix tracebacks memory leak (#121391)
authorJosh Brobst <jbrobst@proton.me>
Fri, 5 Jul 2024 06:39:48 +0000 (02:39 -0400)
committerGitHub <noreply@github.com>
Fri, 5 Jul 2024 06:39:48 +0000 (08:39 +0200)
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.

Python/tracemalloc.c

index fee7dd0e56d96d6ca227306fdadda53382f32de5..e58b60ddd5e484a9a29fc98e13b909b1ac077533 100644 (file)
@@ -838,7 +838,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();