From 995cbd72b29c5fee198de3ee9d8d11468d551b01 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 11 Mar 2019 15:58:52 +0100 Subject: [PATCH] efivars: make sure efi_loader_entry_name_valid() is always compiled in The string validation should always be done correctly, and not fail just because EFI is turned off. After all an EFI loader entry name string remains properly formatted regardless if EFI is on or off... Fixes: #11948 --- src/shared/efivars.c | 20 ++++++++++---------- src/shared/efivars.h | 8 ++------ 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/shared/efivars.c b/src/shared/efivars.c index 885f03118a5..04c0a697b48 100644 --- a/src/shared/efivars.c +++ b/src/shared/efivars.c @@ -789,16 +789,6 @@ int efi_loader_get_device_part_uuid(sd_id128_t *u) { return 0; } -bool efi_loader_entry_name_valid(const char *s) { - if (isempty(s)) - return false; - - if (strlen(s) > FILENAME_MAX) /* Make sure entry names fit in filenames */ - return false; - - return in_charset(s, ALPHANUMERICAL "-_."); -} - int efi_loader_get_entries(char ***ret) { _cleanup_free_ char16_t *entries = NULL; _cleanup_strv_free_ char **l = NULL; @@ -903,6 +893,16 @@ int efi_loader_get_features(uint64_t *ret) { #endif +bool efi_loader_entry_name_valid(const char *s) { + if (isempty(s)) + return false; + + if (strlen(s) > FILENAME_MAX) /* Make sure entry names fit in filenames */ + return false; + + return in_charset(s, ALPHANUMERICAL "-_."); +} + char *efi_tilt_backslashes(char *s) { char *p; diff --git a/src/shared/efivars.h b/src/shared/efivars.h index a545cd47b4c..d8f18aae90e 100644 --- a/src/shared/efivars.h +++ b/src/shared/efivars.h @@ -50,8 +50,6 @@ int efi_loader_get_boot_usec(usec_t *firmware, usec_t *loader); int efi_loader_get_entries(char ***ret); -bool efi_loader_entry_name_valid(const char *s); - int efi_loader_get_features(uint64_t *ret); #else @@ -132,14 +130,12 @@ static inline int efi_loader_get_entries(char ***ret) { return -EOPNOTSUPP; } -static inline bool efi_loader_entry_name_valid(const char *s) { - return false; -} - static inline int efi_loader_get_features(uint64_t *ret) { return -EOPNOTSUPP; } #endif +bool efi_loader_entry_name_valid(const char *s); + char *efi_tilt_backslashes(char *s); -- 2.47.3