xref: /OK3568_Linux_fs/buildroot/boot/grub2/0086-loader-xnu-Fix-memory-leak.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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