aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobbie Harwood <rharwood@redhat.com>2022-08-18 13:50:09 -0400
committerDaniel Kiper <daniel.kiper@oracle.com>2022-08-20 00:19:00 +0200
commit01d1953fc50764206daad12d9b5dd68721353315 (patch)
tree0cb76c9273d557d45f8450a3e5c486316b85feef
parenta032782c86575e8d451d1628cc055cad9fb3b096 (diff)
downloadgrub-01d1953fc50764206daad12d9b5dd68721353315.tar.gz
commands/efi/efifwsetup: Add missing grub_free()s
Each call of grub_efi_get_variable() needs a grub_free(). Signed-off-by: Robbie Harwood <rharwood@redhat.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
-rw-r--r--grub-core/commands/efi/efifwsetup.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/grub-core/commands/efi/efifwsetup.c b/grub-core/commands/efi/efifwsetup.c
index eaca03283..30f269531 100644
--- a/grub-core/commands/efi/efifwsetup.c
+++ b/grub-core/commands/efi/efifwsetup.c
@@ -44,6 +44,8 @@ grub_cmd_fwsetup (grub_command_t cmd __attribute__ ((unused)),
if (old_os_indications != NULL && oi_size == sizeof (os_indications))
os_indications |= *old_os_indications;
+ grub_free (old_os_indications);
+
status = grub_efi_set_variable ("OsIndications", &global, &os_indications,
sizeof (os_indications));
if (status != GRUB_ERR_NONE)
@@ -62,17 +64,20 @@ efifwsetup_is_supported (void)
grub_efi_uint64_t *os_indications_supported = NULL;
grub_size_t oi_size = 0;
grub_efi_guid_t global = GRUB_EFI_GLOBAL_VARIABLE_GUID;
+ grub_efi_boolean_t ret = 0;
grub_efi_get_variable ("OsIndicationsSupported", &global, &oi_size,
(void **) &os_indications_supported);
if (!os_indications_supported)
- return 0;
+ goto done;
if (*os_indications_supported & GRUB_EFI_OS_INDICATIONS_BOOT_TO_FW_UI)
- return 1;
+ ret = 1;
- return 0;
+ done:
+ grub_free (os_indications_supported);
+ return ret;
}
GRUB_MOD_INIT (efifwsetup)