summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonald G. Minnich <rminnich@gmail.com>2009-05-14 21:26:28 +0000
committerRonald G. Minnich <rminnich@gmail.com>2009-05-14 21:26:28 +0000
commit671cedc92f24e1b1578bb00bd3bf8c019c4cdaed (patch)
tree3055f864429a31a49422be8a383dc0d651534f49
parent67befdc22be1b12cf3a29fcef706dd2978bac539 (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.c18
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;