Stefan Reinauer ([email protected]) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/425
-gerrit commit e13a5edca121b2781a3fa05f7b4b23476d60ee65 Author: Stefan Reinauer <[email protected]> Date: Mon Nov 7 12:56:12 2011 -0800 selfboot: fix bug in valid_area() valid_area will accept a region as valid for the payload if only a part of coreboot fits in that region. This means if a payload reaches into a neighboring RESERVED region, coreboot would not care and happily overwrite that region, as long as the payload also writes to some RAM. Change-Id: Ie263f83be18009b01a31c71e7285c998747d097f Signed-off-by: Stefan Reinauer <[email protected]> --- src/boot/selfboot.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/boot/selfboot.c b/src/boot/selfboot.c index 573dd5e..ab0bf21 100644 --- a/src/boot/selfboot.c +++ b/src/boot/selfboot.c @@ -140,10 +140,10 @@ static int valid_area(struct lb_memory *mem, unsigned long buffer, mtype = mem->map[i].type; mstart = unpack_lb64(mem->map[i].start); mend = mstart + unpack_lb64(mem->map[i].size); - if ((mtype == LB_MEM_RAM) && (start < mend) && (end > mstart)) { + if ((mtype == LB_MEM_RAM) && (start >= mstart) && (end < mend)) { break; } - if ((mtype == LB_MEM_TABLE) && (start < mend) && (end > mstart)) { + if ((mtype == LB_MEM_TABLE) && (start >= mstart) && (end < mend)) { printk(BIOS_ERR, "Payload is overwriting coreboot tables.\n"); break; } -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

