From: Ignat Korchagin Date: Thu, 23 Jul 2015 18:13:09 +0000 (+0300) Subject: efi: fix memory leak in variable handling X-Git-Tag: 2.02-beta3~241 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=81ca24a;p=thirdparty%2Fgrub.git efi: fix memory leak in variable handling --- diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c index 2e7783468..490edefe5 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -206,6 +206,7 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, | GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS | GRUB_EFI_VARIABLE_RUNTIME_ACCESS), datasize, data); + grub_free (var16); if (status == GRUB_EFI_SUCCESS) return GRUB_ERR_NONE; @@ -237,8 +238,11 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, status = efi_call_5 (r->get_variable, var16, guid, NULL, &datasize, NULL); - if (!datasize) - return NULL; + if (status != GRUB_EFI_SUCCESS || !datasize) + { + grub_free (var16); + return NULL; + } data = grub_malloc (datasize); if (!data)