summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSpencer Michaels <sxmichaels@gmail.com>2019-11-05 19:55:39 -0800
committerSpencer Michaels <sxmichaels@gmail.com>2019-11-18 22:59:51 -0800
commit6cd12ebcfe459466257ea63022a32515d756e719 (patch)
tree7fd0f42408759bdb536f02066a0b8e001dc8a0a6
parent65901c0fd164bdcf248f7c0317342c4f3fb761b7 (diff)
downloadsystemd-6cd12ebcfe459466257ea63022a32515d756e719.tar.gz
boot: Retain ".conf" suffix for loader config IDs.
Change config_entry_add_from_file() so that it does not remove the `.conf` ending from the filename that it uses for entry->id. This is necessary because otherwise an EFISTUB binary and a loader config entry might end up with the same ID, as the loader config IDs previously didn't include the config filename's .conf extension (see boot.c:1435). Consider, for instance, an EFISTUB /EFI/Linux/linux.efi and a loader config /loader/entries/linux.efi.conf; both would have the ID linux.efi. In addition, update a comment that previously stated that IDs are non-unique (which is no longer the case, as of this commit).
-rw-r--r--src/boot/efi/boot.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c
index 39bad10eee..f6989ddb9b 100644
--- a/src/boot/efi/boot.c
+++ b/src/boot/efi/boot.c
@@ -32,7 +32,7 @@ enum loader_type {
};
typedef struct {
- CHAR16 *id; /* The identifier for this entry (note that this id is not necessarily unique though!) */
+ CHAR16 *id; /* The unique identifier for this entry */
CHAR16 *title_show;
CHAR16 *title;
CHAR16 *version;
@@ -1310,7 +1310,6 @@ static VOID config_entry_add_from_file(
CHAR8 *line;
UINTN pos = 0;
CHAR8 *key, *value;
- UINTN len;
EFI_STATUS err;
EFI_FILE_HANDLE handle;
_cleanup_freepool_ CHAR16 *initrd = NULL;
@@ -1431,10 +1430,6 @@ static VOID config_entry_add_from_file(
entry->device = device;
entry->id = StrDuplicate(file);
- len = StrLen(entry->id);
- /* remove ".conf" */
- if (len > 5)
- entry->id[len - 5] = '\0';
StrLwr(entry->id);
config_add_entry(config, entry);