From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Date: Wed, 2 Sep 2015 23:36:39 +0000 (+0300)
Subject: sunxi: Ensure that 'mksunxiboot' tool produces deterministic output
X-Git-Tag: v2025.01-rc5-pxa1908~11808^2~1
X-Git-Url: http://git.dujemihanovic.xyz/img/static/git-favicon.png?a=commitdiff_plain;h=bfb05d0187d70274c77d02dc0de5e728e1f8be05;p=u-boot.git

sunxi: Ensure that 'mksunxiboot' tool produces deterministic output

Currently some uninitialized padding bytes are written to the output
file, as can be confirmed with valgrind:

$ valgrind tools/mksunxiboot spl/u-boot-spl.bin spl/sunxi-spl.bin

==5581== Syscall param write(buf) points to uninitialised byte(s)
==5581==    at 0x4F0F940: __write_nocancel (in /lib64/libc-2.20.so)
==5581==    by 0x400839: main (in /tmp/u-boot/tools/mksunxiboot)
==5581==  Address 0xffeff5d3c is on thread 1's stack
==5581==  in frame #1, created by main (???)

This patch fixes the problem by clearing the whole structure instead
of just a portion of it.

Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---

diff --git a/tools/mksunxiboot.c b/tools/mksunxiboot.c
index 3361251c8e..676d392fb4 100644
--- a/tools/mksunxiboot.c
+++ b/tools/mksunxiboot.c
@@ -99,7 +99,7 @@ int main(int argc, char *argv[])
 		return EXIT_FAILURE;
 	}
 
-	memset(img.pad, 0, BLOCK_SIZE);
+	memset(&img, 0, sizeof(img));
 
 	/* get input file size */
 	file_size = lseek(fd_in, 0, SEEK_END);