42 lines
1.1 KiB
Diff
42 lines
1.1 KiB
Diff
|
From edc94e4b0bd026bf08861a4f4010a36bec0775cd Mon Sep 17 00:00:00 2001
|
||
|
From: Andrei Borzenkov <arvidjaar@gmail.com>
|
||
|
Date: Tue, 27 Jan 2015 21:19:28 +0300
|
||
|
Subject: [PATCH 265/506] fs/hfsplus: fix memory leak.
|
||
|
|
||
|
Found by: Coverity scan.
|
||
|
---
|
||
|
grub-core/fs/hfsplus.c | 10 ++++++++--
|
||
|
1 file changed, 8 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c
|
||
|
index 950d8a1..8f07f85 100644
|
||
|
--- a/grub-core/fs/hfsplus.c
|
||
|
+++ b/grub-core/fs/hfsplus.c
|
||
|
@@ -723,7 +723,10 @@ list_nodes (void *record, void *hook_arg)
|
||
|
|
||
|
/* If the name is obviously invalid, skip this node. */
|
||
|
if (catkey->name[i] == 0)
|
||
|
- return 0;
|
||
|
+ {
|
||
|
+ grub_free (filename);
|
||
|
+ return 0;
|
||
|
+ }
|
||
|
}
|
||
|
|
||
|
*grub_utf16_to_utf8 ((grub_uint8_t *) filename, catkey->name,
|
||
|
@@ -745,7 +748,10 @@ list_nodes (void *record, void *hook_arg)
|
||
|
callback function. */
|
||
|
node = grub_malloc (sizeof (*node));
|
||
|
if (!node)
|
||
|
- return 1;
|
||
|
+ {
|
||
|
+ grub_free (filename);
|
||
|
+ return 1;
|
||
|
+ }
|
||
|
node->data = ctx->dir->data;
|
||
|
node->compressed = 0;
|
||
|
node->cbuf = 0;
|
||
|
--
|
||
|
2.4.3
|
||
|
|