util/u_printf: fix memory leak in u_printf_singleton_add_serialized

info->arg_sizes and info->strings were leaked because they were
allocated in the global context.

Fixes: 007f60c8b8 ("util/u_printf: add singleton implementation")
Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34987>
(cherry picked from commit 22fb7eaa8c)
This commit is contained in:
Olivia Lee 2025-05-14 13:44:33 -07:00 committed by Eric Engestrom
parent 2e6ea1aaab
commit ad4fa97597
2 changed files with 3 additions and 3 deletions

View file

@ -4014,7 +4014,7 @@
"description": "util/u_printf: fix memory leak in u_printf_singleton_add_serialized",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "007f60c8b8d5cab24ee71b9842fc112bd45e2806",
"notes": null

View file

@ -335,10 +335,10 @@ u_printf_deserialize_info(void *mem_ctx,
u_printf_info *info = &printf_info[i];
info->num_args = blob_read_uint32(blob);
info->string_size = blob_read_uint32(blob);
info->arg_sizes = ralloc_array(mem_ctx, unsigned, info->num_args);
info->arg_sizes = ralloc_array(printf_info, unsigned, info->num_args);
blob_copy_bytes(blob, info->arg_sizes,
info->num_args * sizeof(info->arg_sizes[0]));
info->strings = ralloc_array(mem_ctx, char, info->string_size);
info->strings = ralloc_array(printf_info, char, info->string_size);
blob_copy_bytes(blob, info->strings, info->string_size);
}