]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
util/grub-install-common: Fix memory leak in copy_all()
authorDarren Kenny <darren.kenny@oracle.com>
Tue, 26 Oct 2021 15:02:35 +0000 (15:02 +0000)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 2 Nov 2021 15:27:00 +0000 (16:27 +0100)
The copy_all() function skips a section of code using continue, but
fails to free the memory in srcf first, leaking it.

Fixes: CID 314026
Signed-off-by: Darren Kenny <darren.kenny@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
util/grub-install-common.c

index 4e212e690c520904c65f9f36d7fb4db478076f97..fe77e39453cdc6642297d039774f8ea8cf2d609e 100644 (file)
@@ -754,7 +754,10 @@ copy_all (const char *srcd,
       srcf = grub_util_path_concat (2, srcd, de->d_name);
       if (grub_util_is_special_file (srcf)
          || grub_util_is_directory (srcf))
-       continue;
+       {
+         free (srcf);
+         continue;
+       }
       dstf = grub_util_path_concat (2, dstd, de->d_name);
       grub_install_compress_file (srcf, dstf, 1);
       free (srcf);