]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
fs/minix: Fix memory leaks in grub_minix_lookup_symlink()
authort.feng <fengtao40@huawei.com>
Tue, 29 Nov 2022 09:14:09 +0000 (17:14 +0800)
committerDaniel Kiper <daniel.kiper@oracle.com>
Wed, 7 Dec 2022 22:38:26 +0000 (23:38 +0100)
Fixes: a07e6ad01 (* grub-core/fs/minix.c: Remove variable length arrays)
Signed-off-by: t.feng <fengtao40@huawei.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/fs/minix.c

index 953df11916b8166283872aa9b82830a64854fb2e..5354951d1052aee3063753d7f0b84079dae7f56a 100644 (file)
@@ -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;
 }