From 7ba278675832c85846faa7191a958a84cb7ace11 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Tue, 7 Jul 2020 22:02:31 -0400 Subject: [PATCH 310/336] udf: Fix memory leak Fixes: CID 73796 Signed-off-by: Konrad Rzeszutek Wilk Reviewed-by: Daniel Kiper Reviewed-by: Jan Setje-Eilers Upstream-commit-id: 8da62d8183c --- grub-core/fs/udf.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c index 99b001f2066..c23c0120f49 100644 --- a/grub-core/fs/udf.c +++ b/grub-core/fs/udf.c @@ -909,8 +909,10 @@ grub_udf_iterate_dir (grub_fshelp_node_t dir, return 0; if (grub_udf_read_icb (dir->data, &dirent.icb, child)) - return 0; - + { + grub_free (child); + return 0; + } if (dirent.characteristics & GRUB_UDF_FID_CHAR_PARENT) { /* This is the parent directory. */ @@ -932,11 +934,18 @@ grub_udf_iterate_dir (grub_fshelp_node_t dir, dirent.file_ident_length, (char *) raw)) != dirent.file_ident_length) - return 0; + { + grub_free (child); + return 0; + } filename = read_string (raw, dirent.file_ident_length, 0); if (!filename) - grub_print_error (); + { + /* As the hook won't get called. */ + grub_free (child); + grub_print_error (); + } if (filename && hook (filename, type, child, hook_data)) { -- 2.26.2