From: Zbigniew Jędrzejewski-Szmek Date: Wed, 6 Mar 2019 21:45:37 +0000 (+0100) Subject: shared/bootspec: treat empty EFI vars as missing X-Git-Tag: v242-rc1~189^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f18d9421538682dc44e5852fb9618203facbb8a;p=thirdparty%2Fsystemd.git shared/bootspec: treat empty EFI vars as missing We shouldn't really make any fuss about this. Also, change 'var' to 'variable' for consistency with systemctl.c. --- diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c index 59447d03b48..fea8eb830af 100644 --- a/src/shared/bootspec.c +++ b/src/shared/bootspec.c @@ -664,12 +664,12 @@ int boot_entries_load_config( if (is_efi_boot()) { r = efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderEntryOneShot", &config->entry_oneshot); - if (r < 0 && r != -ENOENT) - return log_error_errno(r, "Failed to read EFI var \"LoaderEntryOneShot\": %m"); + if (r < 0 && !IN_SET(r, -ENOENT, -ENODATA)) + return log_error_errno(r, "Failed to read EFI variable \"LoaderEntryOneShot\": %m"); r = efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderEntryDefault", &config->entry_default); - if (r < 0 && r != -ENOENT) - return log_error_errno(r, "Failed to read EFI var \"LoaderEntryDefault\": %m"); + if (r < 0 && !IN_SET(r, -ENOENT, -ENODATA)) + return log_error_errno(r, "Failed to read EFI variable \"LoaderEntryDefault\": %m"); } config->default_entry = boot_entries_select_default(config); diff --git a/src/shared/efivars.c b/src/shared/efivars.c index caae7b91386..885f03118a5 100644 --- a/src/shared/efivars.c +++ b/src/shared/efivars.c @@ -223,7 +223,7 @@ int efi_get_variable( if (fstat(fd, &st) < 0) return -errno; if (st.st_size < 4) - return -EIO; + return -ENODATA; if (st.st_size > 4*1024*1024 + 4) return -E2BIG;