1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- From 95bc016dba94cab3d398dd74160665915cd08ad6 Mon Sep 17 00:00:00 2001
- From: Darren Kenny <darren.kenny@oracle.com>
- Date: Thu, 26 Nov 2020 15:31:53 +0000
- Subject: [PATCH] syslinux: Fix memory leak while parsing
- In syslinux_parse_real() the 2 points where return is being called
- didn't release the memory stored in buf which is no longer required.
- Fixes: CID 176634
- Signed-off-by: Darren Kenny <darren.kenny@oracle.com>
- Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
- Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
- ---
- grub-core/lib/syslinux_parse.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
- diff --git a/grub-core/lib/syslinux_parse.c b/grub-core/lib/syslinux_parse.c
- index 4afa992..3acc6b4 100644
- --- a/grub-core/lib/syslinux_parse.c
- +++ b/grub-core/lib/syslinux_parse.c
- @@ -737,7 +737,10 @@ syslinux_parse_real (struct syslinux_menu *menu)
- && grub_strncasecmp ("help", ptr3, ptr4 - ptr3) == 0))
- {
- if (helptext (ptr5, file, menu))
- - return 1;
- + {
- + grub_free (buf);
- + return 1;
- + }
- continue;
- }
-
- @@ -757,6 +760,7 @@ syslinux_parse_real (struct syslinux_menu *menu)
- }
- fail:
- grub_file_close (file);
- + grub_free (buf);
- return err;
- }
-
- --
- 2.14.2
|