mirror of
https://github.com/systemd/systemd
synced 2024-09-06 00:41:36 +00:00
boot: do not assume the last character in cmdline is a newline
Fixes #9401.
This commit is contained in:
parent
400d846138
commit
d3a27ed402
|
@ -1590,7 +1590,6 @@ static VOID config_entry_add_linux(Config *config, EFI_LOADED_IMAGE *loaded_imag
|
|||
if (os_name && os_id && (os_version || os_build)) {
|
||||
CHAR16 *conf;
|
||||
CHAR16 *path;
|
||||
CHAR16 *cmdline;
|
||||
|
||||
conf = PoolPrint(L"%s-%s", os_id, os_version ? : os_build);
|
||||
path = PoolPrint(L"\\EFI\\Linux\\%s", f->FileName);
|
||||
|
@ -1599,13 +1598,16 @@ static VOID config_entry_add_linux(Config *config, EFI_LOADED_IMAGE *loaded_imag
|
|||
FreePool(content);
|
||||
content = NULL;
|
||||
/* read the embedded cmdline file */
|
||||
err = file_read(linux_dir, f->FileName, offs[1], szs[1] - 1, &content, NULL);
|
||||
err = file_read(linux_dir, f->FileName, offs[1], szs[1], &content, NULL);
|
||||
if (!EFI_ERROR(err)) {
|
||||
cmdline = stra_to_str(content);
|
||||
entry->options = cmdline;
|
||||
cmdline = NULL;
|
||||
|
||||
/* chomp the newline */
|
||||
if (content[szs[1]-1] == '\n')
|
||||
content[szs[1]-1] = '\0';
|
||||
|
||||
entry->options = stra_to_str(content);
|
||||
}
|
||||
FreePool(cmdline);
|
||||
|
||||
FreePool(conf);
|
||||
FreePool(path);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue