diff options
author | Ronald G. Minnich <rminnich@gmail.com> | 2009-05-14 21:26:28 +0000 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2009-05-14 21:26:28 +0000 |
commit | 671cedc92f24e1b1578bb00bd3bf8c019c4cdaed (patch) | |
tree | 3055f864429a31a49422be8a383dc0d651534f49 | |
parent | 67befdc22be1b12cf3a29fcef706dd2978bac539 (diff) |
#136: failed to boot under KVM\QEMU
> -------------------------------------+--------------------------------------
> Reporter: silicium@… | Owner: somebody
> Type: defect | Status: new
> Priority: major | Milestone:
> Component: coreboot | Version: v2
> Keywords: | Dependencies:
> Patchstatus: patch needs review |
> -------------------------------------+--------------------------------------
Fix use of uninitialized pointers. To help in future, move
the declaration to the same scope as the use.
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Myles Watson <mylesgw@gmail.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4285 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r-- | src/boot/selfboot.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/boot/selfboot.c b/src/boot/selfboot.c index b904e31a21..d87fe50c82 100644 --- a/src/boot/selfboot.c +++ b/src/boot/selfboot.c @@ -411,7 +411,7 @@ static int load_self_segments( return 0; } for(ptr = head->next; ptr != head; ptr = ptr->next) { - unsigned char *dest, *middle, *end, *src; + unsigned char *dest,*src; printk_debug("Loading Segment: addr: 0x%016lx memsz: 0x%016lx filesz: 0x%016lx\n", ptr->s_dstaddr, ptr->s_memsz, ptr->s_filesz); @@ -428,6 +428,7 @@ static int load_self_segments( /* Copy data from the initial buffer */ if (ptr->s_filesz) { + unsigned char *middle, *end; size_t len; len = ptr->s_filesz; switch(ptr->compression) { @@ -464,14 +465,15 @@ static int load_self_segments( (unsigned long)middle, (unsigned long)end, (unsigned long)src); - } - /* Zero the extra bytes between middle & end */ - if (middle < end) { - printk_debug("Clearing Segment: addr: 0x%016lx memsz: 0x%016lx\n", - (unsigned long)middle, (unsigned long)(end - middle)); + + /* Zero the extra bytes between middle & end */ + if (middle < end) { + printk_debug("Clearing Segment: addr: 0x%016lx memsz: 0x%016lx\n", + (unsigned long)middle, (unsigned long)(end - middle)); - /* Zero the extra bytes */ - memset(middle, 0, end - middle); + /* Zero the extra bytes */ + memset(middle, 0, end - middle); + } } } return 1; |