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
This commit is contained in:
Lennart Poettering
2019-03-11 15:58:52 +01:00
committed by Zbigniew Jędrzejewski-Szmek
parent 35d3a35e56
commit 995cbd72b2
2 changed files with 12 additions and 16 deletions

View File

@@ -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;

View File

@@ -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);