sun4u: ensure kernel_top is always initialised

Valgrind reports that when loading a non-ELF kernel, kernel_top may be used
uninitialised when checking for an initrd.

Since there are no known non-ELF kernels for SPARC64 then we can simply
initialise kernel_top to 0 and then skip the initrd load process if it hasn't
been set by load_elf().

Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
This commit is contained in:
Mark Cave-Ayland 2018-08-10 11:40:37 +01:00
parent d0092d90eb
commit 3ac24188ec
1 changed files with 2 additions and 2 deletions

View File

@ -139,7 +139,7 @@ static uint64_t sun4u_load_kernel(const char *kernel_filename,
unsigned int i;
long kernel_size;
uint8_t *ptr;
uint64_t kernel_top;
uint64_t kernel_top = 0;
linux_boot = (kernel_filename != NULL);
@ -172,7 +172,7 @@ static uint64_t sun4u_load_kernel(const char *kernel_filename,
}
/* load initrd above kernel */
*initrd_size = 0;
if (initrd_filename) {
if (initrd_filename && kernel_top) {
*initrd_addr = TARGET_PAGE_ALIGN(kernel_top);
*initrd_size = load_image_targphys(initrd_filename,