diff mbox

[U-Boot] sunxi: Ensure that 'mksunxiboot' tool produces deterministic output

Message ID 1441236999-31780-1-git-send-email-siarhei.siamashka@gmail.com
State Accepted
Delegated to: Hans de Goede
Headers show

Commit Message

Siarhei Siamashka Sept. 2, 2015, 11:36 p.m. UTC
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>
---
 tools/mksunxiboot.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Hans de Goede Sept. 10, 2015, 6:21 p.m. UTC | #1
Hi,

On 03-09-15 01:36, Siarhei Siamashka wrote:
> 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>

Thanks, I've queued this one up for the next pull-req.

Regards,

Hans

> ---
>   tools/mksunxiboot.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/mksunxiboot.c b/tools/mksunxiboot.c
> index 3361251..676d392 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);
>
diff mbox

Patch

diff --git a/tools/mksunxiboot.c b/tools/mksunxiboot.c
index 3361251..676d392 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);