diff options
author | Jan Janssen <medhefgo@web.de> | 2022-11-22 16:03:03 +0100 |
---|---|---|
committer | Jan Janssen <medhefgo@web.de> | 2022-11-22 16:03:03 +0100 |
commit | aee515bbb58496272a6d975858aa26a355c4fb90 (patch) | |
tree | 9afaccfc105b3e469837bb62326423c7eaa3cce5 /src/boot | |
parent | boot: Add xstrn8_to_16 (diff) | |
download | systemd-aee515bbb58496272a6d975858aa26a355c4fb90.tar.xz systemd-aee515bbb58496272a6d975858aa26a355c4fb90.zip |
boot: Use xstr8_to_16
Diffstat (limited to 'src/boot')
-rw-r--r-- | src/boot/efi/boot.c | 30 | ||||
-rw-r--r-- | src/boot/efi/linux.c | 2 | ||||
-rw-r--r-- | src/boot/efi/measure.c | 2 | ||||
-rw-r--r-- | src/boot/efi/util.c | 30 | ||||
-rw-r--r-- | src/boot/efi/util.h | 1 |
5 files changed, 17 insertions, 48 deletions
diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c index caa2a69a6f..a13c7edac1 100644 --- a/src/boot/efi/boot.c +++ b/src/boot/efi/boot.c @@ -1204,7 +1204,7 @@ static void config_defaults_load_from_file(Config *config, char *content) { continue; } free(config->entry_default_config); - config->entry_default_config = xstra_to_str(value); + config->entry_default_config = xstr8_to_16(value); continue; } @@ -1418,25 +1418,25 @@ static void config_entry_add_type1( while ((line = line_get_key_value(content, " \t", &pos, &key, &value))) { if (streq8(key, "title")) { free(entry->title); - entry->title = xstra_to_str(value); + entry->title = xstr8_to_16(value); continue; } if (streq8(key, "sort-key")) { free(entry->sort_key); - entry->sort_key = xstra_to_str(value); + entry->sort_key = xstr8_to_16(value); continue; } if (streq8(key, "version")) { free(entry->version); - entry->version = xstra_to_str(value); + entry->version = xstr8_to_16(value); continue; } if (streq8(key, "machine-id")) { free(entry->machine_id); - entry->machine_id = xstra_to_str(value); + entry->machine_id = xstr8_to_16(value); continue; } @@ -1489,7 +1489,7 @@ static void config_entry_add_type1( if (streq8(key, "options")) { _cleanup_free_ char16_t *new = NULL; - new = xstra_to_str(value); + new = xstr8_to_16(value); if (entry->options) { char16_t *s = xpool_print(L"%s %s", entry->options, new); free(entry->options); @@ -2134,49 +2134,49 @@ static void config_entry_add_unified( while ((line = line_get_key_value(content, "=", &pos, &key, &value))) { if (streq8(key, "PRETTY_NAME")) { free(os_pretty_name); - os_pretty_name = xstra_to_str(value); + os_pretty_name = xstr8_to_16(value); continue; } if (streq8(key, "IMAGE_ID")) { free(os_image_id); - os_image_id = xstra_to_str(value); + os_image_id = xstr8_to_16(value); continue; } if (streq8(key, "NAME")) { free(os_name); - os_name = xstra_to_str(value); + os_name = xstr8_to_16(value); continue; } if (streq8(key, "ID")) { free(os_id); - os_id = xstra_to_str(value); + os_id = xstr8_to_16(value); continue; } if (streq8(key, "IMAGE_VERSION")) { free(os_image_version); - os_image_version = xstra_to_str(value); + os_image_version = xstr8_to_16(value); continue; } if (streq8(key, "VERSION")) { free(os_version); - os_version = xstra_to_str(value); + os_version = xstr8_to_16(value); continue; } if (streq8(key, "VERSION_ID")) { free(os_version_id); - os_version_id = xstra_to_str(value); + os_version_id = xstr8_to_16(value); continue; } if (streq8(key, "BUILD_ID")) { free(os_build_id); - os_build_id = xstra_to_str(value); + os_build_id = xstr8_to_16(value); continue; } } @@ -2225,7 +2225,7 @@ static void config_entry_add_unified( if (content[szs[SECTION_CMDLINE] - 1] == '\n') content[szs[SECTION_CMDLINE] - 1] = '\0'; - entry->options = xstra_to_str(content); + entry->options = xstr8_to_16(content); } } } diff --git a/src/boot/efi/linux.c b/src/boot/efi/linux.c index dd7eb48c8c..668510fca3 100644 --- a/src/boot/efi/linux.c +++ b/src/boot/efi/linux.c @@ -133,7 +133,7 @@ EFI_STATUS linux_exec( return log_error_status_stall(err, u"Error getting kernel loaded image protocol: %r", err); if (cmdline) { - loaded_image->LoadOptions = xstra_to_str(cmdline); + loaded_image->LoadOptions = xstrn8_to_16(cmdline, cmdline_len); loaded_image->LoadOptionsSize = strsize16(loaded_image->LoadOptions); } diff --git a/src/boot/efi/measure.c b/src/boot/efi/measure.c index 9a16920787..6da07d917e 100644 --- a/src/boot/efi/measure.c +++ b/src/boot/efi/measure.c @@ -187,7 +187,7 @@ EFI_STATUS tpm_log_event_ascii(uint32_t pcrindex, EFI_PHYSICAL_ADDRESS buffer, U _cleanup_free_ char16_t *c = NULL; if (description) - c = xstra_to_str(description); + c = xstr8_to_16(description); return tpm_log_event(pcrindex, buffer, buffer_size, c, ret_measured); } diff --git a/src/boot/efi/util.c b/src/boot/efi/util.c index 57436dbf0c..676204ce01 100644 --- a/src/boot/efi/util.c +++ b/src/boot/efi/util.c @@ -298,36 +298,6 @@ static int utf8_to_16(const char *stra, char16_t *c) { return len; } -char16_t *xstra_to_str(const char *stra) { - UINTN strlen; - UINTN len; - UINTN i; - char16_t *str; - - assert(stra); - - len = strlen8(stra); - str = xnew(char16_t, len + 1); - - strlen = 0; - i = 0; - while (i < len) { - int utf8len; - - utf8len = utf8_to_16(stra + i, str + strlen); - if (utf8len <= 0) { - /* invalid utf8 sequence, skip the garbage */ - i++; - continue; - } - - strlen++; - i += utf8len; - } - str[strlen] = '\0'; - return str; -} - char16_t *xstra_to_path(const char *stra) { char16_t *str; UINTN strlen; diff --git a/src/boot/efi/util.h b/src/boot/efi/util.h index 4c5b6cab13..b91d713272 100644 --- a/src/boot/efi/util.h +++ b/src/boot/efi/util.h @@ -138,7 +138,6 @@ EFI_STATUS efivar_get_uint64_le(const EFI_GUID *vendor, const char16_t *name, ui EFI_STATUS efivar_get_boolean_u8(const EFI_GUID *vendor, const char16_t *name, bool *ret); char16_t *xstra_to_path(const char *stra); -char16_t *xstra_to_str(const char *stra); EFI_STATUS file_read(EFI_FILE *dir, const char16_t *name, UINTN off, UINTN size, char **content, UINTN *content_size); |