Fix memory leaks in grub_minix_lookup_symlink.

Fixes: a07e6ad01(Remove variable length arrays)

Signed-off-by: "t.feng" <fengta...@huawei.com>
---
 grub-core/fs/minix.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/grub-core/fs/minix.c b/grub-core/fs/minix.c
index 953df1191..5354951d1 100644
--- a/grub-core/fs/minix.c
+++ b/grub-core/fs/minix.c
@@ -374,7 +374,7 @@ grub_minix_lookup_symlink (struct grub_minix_data *data, 
grub_minix_ino_t ino)
   if (!symlink)
     return grub_errno;
   if (grub_minix_read_file (data, 0, 0, 0, sz, symlink) < 0)
-    return grub_errno;
+    goto fail;
 
   symlink[sz] = '\0';
 
@@ -384,10 +384,12 @@ grub_minix_lookup_symlink (struct grub_minix_data *data, 
grub_minix_ino_t ino)
 
   /* Now load in the old inode.  */
   if (grub_minix_read_inode (data, ino))
-    return grub_errno;
+    goto fail;
 
   grub_minix_find_file (data, symlink);
 
+ fail:
+  grub_free(symlink);
   return grub_errno;
 }
 
-- 
2.27.0


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to