efi_selftest: error handling in SNP test

Avoid NULL pointer dereference after setup failed due to a
missing network.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
Heinrich Schuchardt 2017-10-08 06:57:28 +02:00 committed by Alexander Graf
parent 10a08c4ed7
commit fdd04563ce

View File

@ -198,7 +198,7 @@ static int setup(const efi_handle_t handle,
*/
ret = boottime->set_timer(timer, EFI_TIMER_PERIODIC, 10000000);
if (ret != EFI_SUCCESS) {
efi_st_error("Failed to locate simple network protocol\n");
efi_st_error("Failed to set timer\n");
return EFI_ST_FAILURE;
}
/*
@ -206,6 +206,7 @@ static int setup(const efi_handle_t handle,
*/
ret = boottime->locate_protocol(&efi_net_guid, NULL, (void **)&net);
if (ret != EFI_SUCCESS) {
net = NULL;
efi_st_error("Failed to locate simple network protocol\n");
return EFI_ST_FAILURE;
}
@ -273,6 +274,12 @@ static int execute(void)
*/
unsigned int timeout = 10;
/* Setup may have failed */
if (!net || !timer) {
efi_st_error("Cannot execute test after setup failure\n");
return EFI_ST_FAILURE;
}
/*
* Send DHCP discover message
*/