[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/9] fs/affs:Fix memory leaks in grub_affs_create_node
From: |
t . feng |
Subject: |
[PATCH 1/9] fs/affs:Fix memory leaks in grub_affs_create_node |
Date: |
Sat, 19 Nov 2022 18:39:38 +0800 |
hashtable is unfreed in case GRUB_AFFS_FILETYPE_HARDLINK if
grub_disk_read failed. Because, if grub_affs_create_node
return not zero, the hashtable should be freed.
By the way hashtable is unused in grub_affs_create_node, so we can
remove the parameter and take care of it in grub_affs_iterate_dir.
(which one allocate the memory and it should be responsible for releasing)
This is why commit ebf32bc4e9(fs/affs: Fix resource leaks), missing
this memory leak.
Fixs: ebf32bc4e9(fs/affs: Fix resource leaks)
Signed-off-by: "t.feng" <fengtao40@huawei.com>
---
grub-core/fs/affs.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/grub-core/fs/affs.c b/grub-core/fs/affs.c
index 631d3d58a..ed606b3f1 100644
--- a/grub-core/fs/affs.c
+++ b/grub-core/fs/affs.c
@@ -321,7 +321,6 @@ static int
grub_affs_create_node (grub_fshelp_node_t dir,
grub_fshelp_iterate_dir_hook_t hook, void *hook_data,
struct grub_fshelp_node **node,
- grub_uint32_t **hashtable,
grub_uint32_t block, const struct grub_affs_file *fil)
{
struct grub_affs_data *data = dir->data;
@@ -332,10 +331,7 @@ grub_affs_create_node (grub_fshelp_node_t dir,
*node = grub_zalloc (sizeof (**node));
if (!*node)
- {
- grub_free (*hashtable);
- return 1;
- }
+ return 1;
(*node)->data = data;
(*node)->block = block;
@@ -395,7 +391,6 @@ grub_affs_create_node (grub_fshelp_node_t dir,
if (hook ((char *) name_u8, type, *node, hook_data))
{
- grub_free (*hashtable);
*node = 0;
return 1;
}
@@ -460,11 +455,11 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir,
if (grub_errno)
goto fail;
- if (grub_affs_create_node (dir, hook, hook_data, &node, &hashtable,
- next, &file))
+ if (grub_affs_create_node (dir, hook, hook_data, &node, next, &file))
{
/* Node has been replaced in function. */
grub_free (orig_node);
+ grub_free (hashtable);
return 1;
}
--
2.27.0
- [PATCH 0/9] fix memory leaks in fs module, t . feng, 2022/11/19
- [PATCH 7/9] fs/iso9660: Fix memory leak in grub_iso9660_susp_iterate, t . feng, 2022/11/19
- [PATCH 3/9] fs/minix: Fix memory leak in grub_minix_lookup_symlink, t . feng, 2022/11/19
- [PATCH 6/9] fs/hfsplus: Fix memory leak in grub_hfsplus_btree_search, t . feng, 2022/11/19
- [PATCH 2/9] fs/btrfs: Fix memory leak in find_path, t . feng, 2022/11/19
- [PATCH 1/9] fs/affs:Fix memory leaks in grub_affs_create_node,
t . feng <=
- [PATCH 9/9] fs/xfs: Fix memory leaks in xfs, t . feng, 2022/11/19
- [PATCH 8/9] fs/squash4: Fix memeory leak in grub_squash_iterate_dir, t . feng, 2022/11/19
- [PATCH 4/9] fs/ntfs: Fix memory leak in grub_ntfs_read_symlink, t . feng, 2022/11/19
- [PATCH 5/9] fs/bfs: Fix memory leak in read_bfs_file, t . feng, 2022/11/19
- Re: [PATCH 0/9] fix memory leaks in fs module, Daniel Kiper, 2022/11/23