You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.5 KiB
56 lines
1.5 KiB
From 7ba278675832c85846faa7191a958a84cb7ace11 Mon Sep 17 00:00:00 2001 |
|
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
|
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 <konrad.wilk@oracle.com> |
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> |
|
Reviewed-by: Jan Setje-Eilers <jan.setjeeilers@oracle.com> |
|
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 |
|
|
|
|