From: Lennart Poettering Date: Mon, 11 Mar 2019 14:58:52 +0000 (+0100) Subject: efivars: make sure efi_loader_entry_name_valid() is always compiled in X-Git-Tag: v242-rc1~165 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=995cbd72b29c5fee198de3ee9d8d11468d551b01;p=thirdparty%2Fsystemd.git 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 --- 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);