From f1feb3ac04e2c96aa751fda8d36bb50c04ffa58d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Feb 2021 10:36:23 +0100 Subject: sbat: drop the struct sbat and just use two variables instead The struct sbat isn't doing anything and only has two fields so let's pass pass those two to the functions directly instead of storing it in a struct. Signed-off-by: Peter Jones --- pe.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'pe.c') diff --git a/pe.c b/pe.c index 160c6f8a..0f4e1afd 100644 --- a/pe.c +++ b/pe.c @@ -1041,7 +1041,8 @@ handle_image (void *data, unsigned int datasize, if (secure_mode ()) { unsigned int i; EFI_STATUS efi_status; - struct sbat sbat = { 0 }; + size_t n; + struct sbat_entry **entries; struct sbat_entry *entry = NULL; if (SBATBase && SBATSize) { @@ -1057,7 +1058,7 @@ handle_image (void *data, unsigned int datasize, CopyMem(sbat_data, SBATBase, SBATSize); sbat_data[SBATSize] = '\0'; - efi_status = parse_sbat(sbat_data, sbat_size, &sbat); + efi_status = parse_sbat(sbat_data, sbat_size, &n, &entries); if (EFI_ERROR(efi_status)) { perror(L"SBAT data not correct: %r\n", efi_status); @@ -1065,8 +1066,8 @@ handle_image (void *data, unsigned int datasize, } dprint(L"SBAT data\n"); - for (i = 0; i < sbat.size; i++) { - entry = sbat.entries[i]; + for (i = 0; i < n; i++) { + entry = entries[i]; dprint(L"%a, %a, %a, %a, %a, %a\n", entry->component_name, entry->component_generation, @@ -1083,9 +1084,9 @@ handle_image (void *data, unsigned int datasize, efi_status = verify_buffer(data, datasize, &context, sha256hash, sha1hash); - if (sbat.entries) - for (i = 0; i < sbat.size; i++) - FreePool(sbat.entries[i]); + if (entries) + for (i = 0; i < n; i++) + FreePool(entries[i]); if (EFI_ERROR(efi_status)) { if (verbose) -- cgit v1.2.3