util/nvramtool: Use correct virtual address when mapping tables

The existing code used a stale pointer from a previously unmapped
region of memory when parsing the coreboot tables.  Use the correct
pointer from the currently mapped memory region when parsing.

Change-Id: Id9a1c70655fe25bc079e5bee55f15adf674694f8
Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
Reviewed-on: https://review.coreboot.org/12619
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Timothy Pearson 2015-12-01 13:49:59 -06:00 committed by Patrick Georgi
parent 8cf590fb1b
commit 347234c1ef
1 changed files with 3 additions and 0 deletions

View File

@ -489,6 +489,9 @@ static const struct lb_header *lbtable_scan(unsigned long start,
} }
map_pages(p, table->table_bytes + sizeof(*table)); map_pages(p, table->table_bytes + sizeof(*table));
table = (const struct lb_header *)phystov(p);
/* validate table checksum */ /* validate table checksum */
if (table->table_checksum != if (table->table_checksum !=
compute_ip_checksum(((char *)table) + sizeof(*table), compute_ip_checksum(((char *)table) + sizeof(*table),