diff mbox series

bootloader: EBG: fix do_env_get for anything but global state

Message ID 9dbb0b5f-6f74-6ca7-afc7-f3a52bebad6b@siemens.com
State Accepted
Headers show
Series bootloader: EBG: fix do_env_get for anything but global state | expand

Commit Message

Jan Kiszka April 12, 2022, 5:56 a.m. UTC
From: Jan Kiszka <jan.kiszka@siemens.com>

The return value conversion must only be applied on STATE_KEY. This
fixes strangely broken strings for all other keys.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 bootloader/ebg.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Stefano Babic April 12, 2022, 8:05 a.m. UTC | #1
Hi Jan,

On 12.04.22 07:56, Jan Kiszka wrote:
> From: Jan Kiszka <jan.kiszka@siemens.com>
> 
> The return value conversion must only be applied on STATE_KEY. This
> fixes strangely broken strings for all other keys.
> 
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
>   bootloader/ebg.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/bootloader/ebg.c b/bootloader/ebg.c
> index b16a657..2cd6a65 100644
> --- a/bootloader/ebg.c
> +++ b/bootloader/ebg.c
> @@ -129,6 +129,8 @@ static char *do_env_get(const char *name)
>   	if (strncmp(name, (char *)STATE_KEY, strlen((char *)STATE_KEY) + 1) == 0) {
>   		value = (char *)malloc(sizeof(char));
>   		*value = libebg.env_getglobalstate(&ebgenv);
> +		/* Map EFI Boot Guard's int return to update_state_t's char value */
> +		*value = *value + '0';
>   	} else {
>   		if ((size = libebg.env_get(&ebgenv, (char *)name, NULL)) != 0) {
>   			value = malloc(size);
> @@ -147,8 +149,6 @@ static char *do_env_get(const char *name)
>   		    name, strerror(errno));
>   	}
>   
> -	/* Map EFI Boot Guard's int return to update_state_t's char value */
> -	*value = *value + '0';
>   	return value;
>   }
>   

Applied to -master, thanks !

Best regards,
Stefano Babic
diff mbox series

Patch

diff --git a/bootloader/ebg.c b/bootloader/ebg.c
index b16a657..2cd6a65 100644
--- a/bootloader/ebg.c
+++ b/bootloader/ebg.c
@@ -129,6 +129,8 @@  static char *do_env_get(const char *name)
 	if (strncmp(name, (char *)STATE_KEY, strlen((char *)STATE_KEY) + 1) == 0) {
 		value = (char *)malloc(sizeof(char));
 		*value = libebg.env_getglobalstate(&ebgenv);
+		/* Map EFI Boot Guard's int return to update_state_t's char value */
+		*value = *value + '0';
 	} else {
 		if ((size = libebg.env_get(&ebgenv, (char *)name, NULL)) != 0) {
 			value = malloc(size);
@@ -147,8 +149,6 @@  static char *do_env_get(const char *name)
 		    name, strerror(errno));
 	}
 
-	/* Map EFI Boot Guard's int return to update_state_t's char value */
-	*value = *value + '0';
 	return value;
 }