37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 583a48bca23f7c4e0d691f0e6d065dac61bbfca1 Mon Sep 17 00:00:00 2001
 | |
| From: Alexey Makhalov <amakhalov@vmware.com>
 | |
| Date: Wed, 8 Jul 2020 20:41:56 +0000
 | |
| Subject: [PATCH 288/314] gfxmenu: Fix double free in load_image()
 | |
| 
 | |
| self->bitmap should be zeroed after free. Otherwise, there is a chance
 | |
| to double free (USE_AFTER_FREE) it later in rescale_image().
 | |
| 
 | |
| Fixes: CID 292472
 | |
| 
 | |
| Signed-off-by: Alexey Makhalov <amakhalov@vmware.com>
 | |
| Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
 | |
| Upstream-commit-id: 5d3e84b15a4
 | |
| ---
 | |
|  grub-core/gfxmenu/gui_image.c | 5 ++++-
 | |
|  1 file changed, 4 insertions(+), 1 deletion(-)
 | |
| 
 | |
| diff --git a/grub-core/gfxmenu/gui_image.c b/grub-core/gfxmenu/gui_image.c
 | |
| index 29784ed2d9a..6b2e976f16e 100644
 | |
| --- a/grub-core/gfxmenu/gui_image.c
 | |
| +++ b/grub-core/gfxmenu/gui_image.c
 | |
| @@ -195,7 +195,10 @@ load_image (grub_gui_image_t self, const char *path)
 | |
|      return grub_errno;
 | |
|  
 | |
|    if (self->bitmap && (self->bitmap != self->raw_bitmap))
 | |
| -    grub_video_bitmap_destroy (self->bitmap);
 | |
| +    {
 | |
| +      grub_video_bitmap_destroy (self->bitmap);
 | |
| +      self->bitmap = 0;
 | |
| +    }
 | |
|    if (self->raw_bitmap)
 | |
|      grub_video_bitmap_destroy (self->raw_bitmap);
 | |
|  
 | |
| -- 
 | |
| 2.26.2
 | |
| 
 |