From: Darren Kenny <darren.ke...@oracle.com> The code here is finished with the memory stored in name, but it only frees it if there curvalue is valid, while it could actually free it regardless.
The fix is a simple relocation of the grub_free() to before the test of curvalue. Fixes: CID 96646 Signed-off-by: Darren Kenny <darren.ke...@oracle.com> Reviewed-by: Daniel Kiper <daniel.ki...@oracle.com> --- grub-core/loader/xnu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c index 44fd5a979..eb1446251 100644 --- a/grub-core/loader/xnu.c +++ b/grub-core/loader/xnu.c @@ -1391,9 +1391,9 @@ grub_xnu_fill_devicetree (void) name[len] = 0; curvalue = grub_xnu_create_value (curkey, name); - if (!curvalue) - return grub_errno; grub_free (name); + if (!curvalue) + return grub_errno; data = grub_malloc (grub_strlen (var->value) + 1); if (!data) -- 2.11.0 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel