From 34bd00ee2663e5233649f1e32bba47b4184b9435 Mon Sep 17 00:00:00 2001 From: Glenn Washburn Date: Mon, 5 May 2025 17:09:19 -0500 Subject: [PATCH] fs/zfs: Fix another memory leak in ZFS code Commit b66c6f918 (fs/zfs: Fix a number of memory leaks in ZFS code) fixes many of the same leaks detected in bug #63846 except one, which is fixed here. Fixes: https://savannah.gnu.org/bugs/?63846 Fixes: b66c6f918 (fs/zfs: Fix a number of memory leaks in ZFS code) Signed-off-by: Glenn Washburn Reviewed-by: Daniel Kiper --- grub-core/fs/zfs/zfs.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c index bff9d0208..afe821f9b 100644 --- a/grub-core/fs/zfs/zfs.c +++ b/grub-core/fs/zfs/zfs.c @@ -3052,6 +3052,7 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, void *sahdrp; int hdrsize; grub_size_t sz; + bool free_sahdrp = false; if (dnode_path->dn.dn.dn_bonuslen != 0) { @@ -3064,6 +3065,7 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, err = zio_read (bp, dnode_path->dn.endian, &sahdrp, NULL, data); if (err) break; + free_sahdrp = true; } else { @@ -3122,6 +3124,9 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn, } dn_new = dnode_path; } + if (free_sahdrp == true) + grub_free (sahdrp); + } } -- 2.47.3