From e07fcea291ac8aa430db6e57d6e8e08894127fe2 Mon Sep 17 00:00:00 2001 From: Darren Kenny Date: Tue, 26 Oct 2021 15:02:35 +0000 Subject: util/grub-install-common: Fix memory leak in copy_all() 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 Reviewed-by: Daniel Kiper Conflict: NA Reference: https://git.savannah.gnu.org/cgit/grub.git/commit?id=e07fcea291ac8aa430db6e57d6e8e08894127fe2 --- util/grub-install-common.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/util/grub-install-common.c b/util/grub-install-common.c index 4e212e6..fe77e39 100644 --- a/util/grub-install-common.c +++ b/util/grub-install-common.c @@ -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); -- cgit v1.1