From: Rob Clark Date: Wed, 19 Jul 2017 19:47:41 +0000 (-0400) Subject: Fix a segfault in lsefi X-Git-Url: https://iam.tj/gitweb/gitweb.cgi?p=grub.git;a=commitdiff_plain;h=e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. Signed-off-by: Peter Jones Reviewed-by: Daniel Kiper --- diff --git a/grub-core/commands/efi/lsefi.c b/grub-core/commands/efi/lsefi.c index d901c3892..d1ce99af4 100644 --- a/grub-core/commands/efi/lsefi.c +++ b/grub-core/commands/efi/lsefi.c @@ -109,8 +109,10 @@ grub_cmd_lsefi (grub_command_t cmd __attribute__ ((unused)), status = efi_call_3 (grub_efi_system_table->boot_services->protocols_per_handle, handle, &protocols, &num_protocols); - if (status != GRUB_EFI_SUCCESS) + if (status != GRUB_EFI_SUCCESS) { grub_printf ("Unable to retrieve protocols\n"); + continue; + } for (j = 0; j < num_protocols; j++) { for (k = 0; k < ARRAY_SIZE (known_protocols); k++)