[PATCH master] ARM: i.MX8M: HABv4: make barebox SHA256 embedding POSIX-shell compatible

Rouven Czerwinski rcz at pengutronix.de
Sun Aug 14 23:46:09 PDT 2022


On Mon, 2022-08-15 at 08:38 +0200, Ahmad Fatoum wrote:
> C-Style printf "\xHH" is not supported by a POSIX shell,
> while printf "\oOOO" is. As we use printf "\xHH" for converting the
> textual output of sha256sum into binary, systems using dash as shell
> will end up embedding literal \xHH characters in the output resulting in
> an ubootable barebox when CONFIG_PBL_VERIFY_PIGGY=y:
> 
>   !hash mismatch, refusing to decompress
> 
> Fix this by using octal escape sequences instead.
> 
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>

Reviewed-by: Rouven Czerwinski <r.czerwinski at pengutronix.de>

> ---
>  images/Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/images/Makefile b/images/Makefile
> index c79f1a272e9c..7a8bb94fe0df 100644
> --- a/images/Makefile
> +++ b/images/Makefile
> @@ -113,7 +113,8 @@ $(obj)/piggy.o: $(obj)/barebox.z FORCE
>  $(obj)/sha_sum.o: $(obj)/barebox.sha.bin FORCE
>  
>  quiet_cmd_sha256bin ?= SHA-BIN $@
> -      cmd_sha256bin ?= printf "$(shell awk '{printf $$1}' < $(obj)/barebox.sum | sed -e 's/../\\x&/g' )" > $@
> +      cmd_sha256bin = printf "$(shell sed 's/ .*$$//;s/../0x&\n/g;s/\n$$//' $(obj)/barebox.sum | \
> +			while read -r byte; do printf '\%o' $$byte; done)" > $@
>  
>  quiet_cmd_sha256sum ?= SHA     $@
>        cmd_sha256sum ?= sha256sum $(obj)/barebox.z > $@

Best regards,
Rouven



More information about the barebox mailing list