From dbc25d84aeff8e9196c002a778fbaf91d979a1b9 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 13 Nov 2025 12:35:36 +0100 Subject: [PATCH] efivars: seek back to beginning in each efi_get_variable() loop We try to read again from the beginning, hence let's seek back. Apparently efivarfs doesn't strictly require this, but it's really weird that it doesn't. --- src/basic/efivars.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/basic/efivars.c b/src/basic/efivars.c index f40c8a09e01..f54c3d22e93 100644 --- a/src/basic/efivars.c +++ b/src/basic/efivars.c @@ -114,6 +114,9 @@ int efi_get_variable( return log_debug_errno(SYNTHETIC_ERRNO(EBUSY), "Reading EFI variable '%s' failed even after %u tries, giving up.", p, try); if (try >= EFI_N_RETRIES_NO_DELAY) (void) usleep_safe(EFI_RETRY_DELAY); + + /* Start from the beginning */ + (void) lseek(fd, 0, SEEK_SET); } /* Unfortunately kernel reports EOF if there's an inconsistency between efivarfs var list and -- 2.47.3