38 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | |
| From: Leo Sandoval <lsandova@redhat.com>
 | |
| Date: Wed, 16 Oct 2024 11:54:38 -0600
 | |
| Subject: [PATCH] commands/legacycfg: Avoid closing file twice
 | |
| 
 | |
| An internal (at Red Hat) static soure code scan detected an
 | |
| use-after-free scenario:
 | |
| 
 | |
|   Error: USE_AFTER_FREE (CWE-416):
 | |
|   grub-2.06/grub-core/commands/legacycfg.c:194: freed_arg: "grub_file_close" frees "file".
 | |
|   grub-2.06/grub-core/commands/legacycfg.c:201: deref_arg: Calling "grub_file_close" dereferences freed pointer "file".
 | |
|   #  199|         if (!args)
 | |
|   #  200|   	{
 | |
|   #  201|-> 	  grub_file_close (file);
 | |
|   #  202|   	  grub_free (suffix);
 | |
|   #  203|   	  grub_free (entrysrc);
 | |
| 
 | |
| So, remove the extra file close call.
 | |
| 
 | |
| Signed-off-by: Leo Sandoval <lsandova@redhat.com>
 | |
| Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
 | |
| ---
 | |
|  grub-core/commands/legacycfg.c | 1 -
 | |
|  1 file changed, 1 deletion(-)
 | |
| 
 | |
| diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c
 | |
| index 2c5d1a0ef..86bcda695 100644
 | |
| --- a/grub-core/commands/legacycfg.c
 | |
| +++ b/grub-core/commands/legacycfg.c
 | |
| @@ -198,7 +198,6 @@ legacy_file (const char *filename)
 | |
|        const char **args = grub_malloc (sizeof (args[0]));
 | |
|        if (!args)
 | |
|  	{
 | |
| -	  grub_file_close (file);
 | |
|  	  grub_free (suffix);
 | |
|  	  grub_free (entrysrc);
 | |
|  	  return grub_errno;
 |