efi_selftest: correctly cleanup after selftest
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Wed, 18 Oct 2017 16:13:14 +0000 (18:13 +0200)
committerAlexander Graf <agraf@suse.de>
Fri, 1 Dec 2017 12:22:55 +0000 (13:22 +0100)
After executing bootefi selftest
* restore GD
* unlink the load image handle
* return 0 or 1 and not a truncated efi_status_t.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
cmd/bootefi.c

index b894403..0915192 100644 (file)
@@ -349,8 +349,10 @@ static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                set_load_options(&loaded_image_info, "efi_selftest");
                /* Execute the test */
                r = efi_selftest(&loaded_image_info, &systab);
+               efi_restore_gd();
                free(loaded_image_info.load_options);
-               return r;
+               list_del(&loaded_image_info_obj.link);
+               return r != EFI_SUCCESS;
        } else
 #endif
        if (!strcmp(argv[1], "bootmgr")) {