diff mbox series

[1/4] efi_loader: simplify show_efi_boot_opt_data()

Message ID 20210524095656.161437-2-xypron.glpk@gmx.de
State Accepted, archived
Commit cd5a87e7b7e2f0ee014e91d6aaf3e041120deec0
Delegated to: Heinrich Schuchardt
Headers show
Series efi_loader: simplify efidebug implementation | expand

Commit Message

Heinrich Schuchardt May 24, 2021, 9:56 a.m. UTC
To print a UTF-16 string use %ls instead of converting string to UTF-8.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 cmd/efidebug.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

--
2.30.2

Comments

Ilias Apalodimas May 24, 2021, 1:51 p.m. UTC | #1
On Mon, May 24, 2021 at 11:56:53AM +0200, Heinrich Schuchardt wrote:
> To print a UTF-16 string use %ls instead of converting string to UTF-8.
> 
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> ---
>  cmd/efidebug.c | 13 +------------
>  1 file changed, 1 insertion(+), 12 deletions(-)
> 
> diff --git a/cmd/efidebug.c b/cmd/efidebug.c
> index 0bf7b8856c..9444eca49c 100644
> --- a/cmd/efidebug.c
> +++ b/cmd/efidebug.c
> @@ -1147,8 +1147,6 @@ static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
>  {
>  	struct efi_device_path *initrd_path = NULL;
>  	struct efi_load_option lo;
> -	char *label, *p;
> -	size_t label_len16, label_len;
>  	u16 *dp_str;
>  	efi_status_t ret;
>  	efi_uintn_t initrd_dp_size;
> @@ -1160,14 +1158,6 @@ static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
>  		return;
>  	}
> 
> -	label_len16 = u16_strlen(lo.label);
> -	label_len = utf16_utf8_strnlen(lo.label, label_len16);
> -	label = malloc(label_len + 1);
> -	if (!label)
> -		return;
> -	p = label;
> -	utf16_utf8_strncpy(&p, lo.label, label_len16);
> -
>  	printf("%ls:\nattributes: %c%c%c (0x%08x)\n",
>  	       varname16,
>  	       /* ACTIVE */
> @@ -1177,7 +1167,7 @@ static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
>  	       /* HIDDEN */
>  	       lo.attributes & LOAD_OPTION_HIDDEN ? 'H' : '-',
>  	       lo.attributes);
> -	printf("  label: %s\n", label);
> +	printf("  label: %ls\n", lo.label);
> 
>  	dp_str = efi_dp_str(lo.file_path);
>  	printf("  file_path: %ls\n", dp_str);
> @@ -1194,7 +1184,6 @@ static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
>  	printf("  data:\n");
>  	print_hex_dump("    ", DUMP_PREFIX_OFFSET, 16, 1,
>  		       lo.optional_data, *size, true);
> -	free(label);
>  }
> 
>  /**
> --
> 2.30.2
> 

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff mbox series

Patch

diff --git a/cmd/efidebug.c b/cmd/efidebug.c
index 0bf7b8856c..9444eca49c 100644
--- a/cmd/efidebug.c
+++ b/cmd/efidebug.c
@@ -1147,8 +1147,6 @@  static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
 {
 	struct efi_device_path *initrd_path = NULL;
 	struct efi_load_option lo;
-	char *label, *p;
-	size_t label_len16, label_len;
 	u16 *dp_str;
 	efi_status_t ret;
 	efi_uintn_t initrd_dp_size;
@@ -1160,14 +1158,6 @@  static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
 		return;
 	}

-	label_len16 = u16_strlen(lo.label);
-	label_len = utf16_utf8_strnlen(lo.label, label_len16);
-	label = malloc(label_len + 1);
-	if (!label)
-		return;
-	p = label;
-	utf16_utf8_strncpy(&p, lo.label, label_len16);
-
 	printf("%ls:\nattributes: %c%c%c (0x%08x)\n",
 	       varname16,
 	       /* ACTIVE */
@@ -1177,7 +1167,7 @@  static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
 	       /* HIDDEN */
 	       lo.attributes & LOAD_OPTION_HIDDEN ? 'H' : '-',
 	       lo.attributes);
-	printf("  label: %s\n", label);
+	printf("  label: %ls\n", lo.label);

 	dp_str = efi_dp_str(lo.file_path);
 	printf("  file_path: %ls\n", dp_str);
@@ -1194,7 +1184,6 @@  static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
 	printf("  data:\n");
 	print_hex_dump("    ", DUMP_PREFIX_OFFSET, 16, 1,
 		       lo.optional_data, *size, true);
-	free(label);
 }

 /**