1*4882a593SmuzhiyunFrom bcb59ece3263d118510c4440c4da0950f224bb7f Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Darren Kenny <darren.kenny@oracle.com> 3*4882a593SmuzhiyunDate: Thu, 26 Nov 2020 12:53:10 +0000 4*4882a593SmuzhiyunSubject: [PATCH] loader/xnu: Fix memory leak 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunThe code here is finished with the memory stored in name, but it only 7*4882a593Smuzhiyunfrees it if there curvalue is valid, while it could actually free it 8*4882a593Smuzhiyunregardless. 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunThe fix is a simple relocation of the grub_free() to before the test 11*4882a593Smuzhiyunof curvalue. 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunFixes: CID 96646 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunSigned-off-by: Darren Kenny <darren.kenny@oracle.com> 16*4882a593SmuzhiyunReviewed-by: Daniel Kiper <daniel.kiper@oracle.com> 17*4882a593SmuzhiyunSigned-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com> 18*4882a593Smuzhiyun--- 19*4882a593Smuzhiyun grub-core/loader/xnu.c | 2 +- 20*4882a593Smuzhiyun 1 file changed, 1 insertion(+), 1 deletion(-) 21*4882a593Smuzhiyun 22*4882a593Smuzhiyundiff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c 23*4882a593Smuzhiyunindex 44fd5a9..eb14462 100644 24*4882a593Smuzhiyun--- a/grub-core/loader/xnu.c 25*4882a593Smuzhiyun+++ b/grub-core/loader/xnu.c 26*4882a593Smuzhiyun@@ -1391,9 +1391,9 @@ grub_xnu_fill_devicetree (void) 27*4882a593Smuzhiyun name[len] = 0; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun curvalue = grub_xnu_create_value (curkey, name); 30*4882a593Smuzhiyun+ grub_free (name); 31*4882a593Smuzhiyun if (!curvalue) 32*4882a593Smuzhiyun return grub_errno; 33*4882a593Smuzhiyun- grub_free (name); 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun data = grub_malloc (grub_strlen (var->value) + 1); 36*4882a593Smuzhiyun if (!data) 37*4882a593Smuzhiyun-- 38*4882a593Smuzhiyun2.14.2 39*4882a593Smuzhiyun 40