From 1d594250258ac65b565d8985d30395220febe3fe Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 14 Sep 2020 12:35:19 +0200 Subject: bootctl: handle if LoaderSystemToken is invalid for some reason This points to some firmware issue, but we should still be able to correct things if this happens. Hence log about this and fix it. Fixes: #17041 (cherry picked from commit ad0b610b0c1c2595c32b6235e7ac5ad7fba6e0aa) (cherry picked from commit a06cf9a5bad917b9ac6016c940c5f0f0238f266f) (cherry picked from commit 387881ae21acc1022c5c8c17f273ecc254fffe24) (cherry picked from commit 9f6249eb7fe14ea975dd9d48681408005f598fe4) --- src/boot/bootctl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index bac8f0c36d..7fc6152caf 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -1437,7 +1437,9 @@ static int install_random_seed(const char *esp) { } r = efi_get_variable(EFI_VENDOR_LOADER, "LoaderSystemToken", NULL, NULL, &token_size); - if (r < 0) { + if (r == -ENODATA) + log_debug_errno(r, "LoaderSystemToken EFI variable is invalid (too short?), replacing."); + else if (r < 0) { if (r != -ENOENT) return log_error_errno(r, "Failed to test system token validity: %m"); } else { -- cgit v1.2.1