From a98d3061e9e85be2f924850860e76f07cfc5af37 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Thu, 11 Apr 2013 12:32:32 +0200 Subject: nvramtool: Use CMOS_SIZE for cmos size We write CMOS data to 128 byte files, which is a problem when using them later-on (eg. as part of a coreboot image) where nvramtool assumes them to be 256 byte, and so data corruption occurs. Change-Id: Ibc919c95f6d522866b21fd313ceb023e73d09fb9 Signed-off-by: Patrick Georgi Reviewed-on: http://review.coreboot.org/3186 Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- util/nvramtool/cli/nvramtool.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/util/nvramtool/cli/nvramtool.c b/util/nvramtool/cli/nvramtool.c index 76d5cbb678..d5acc5838e 100644 --- a/util/nvramtool/cli/nvramtool.c +++ b/util/nvramtool/cli/nvramtool.c @@ -162,8 +162,8 @@ int main(int argc, char *argv[]) exit(1); } - if (fd_stat.st_size < 128) { - lseek(fd, 127, SEEK_SET); + if (fd_stat.st_size < CMOS_SIZE) { + lseek(fd, CMOS_SIZE - 1, SEEK_SET); if (write(fd, "\0", 1) != 1) { fprintf(stderr, "Unable to extended '%s' to its full size.\n", nvramtool_op_modifiers[NVRAMTOOL_MOD_USE_CMOS_FILE].param); @@ -176,7 +176,7 @@ int main(int argc, char *argv[]) #endif } - cmos_default = mmap(NULL, 128, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); + cmos_default = mmap(NULL, CMOS_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); if (cmos_default == MAP_FAILED) { fprintf(stderr, "Couldn't map '%s'\n", nvramtool_op_modifiers[NVRAMTOOL_MOD_USE_CMOS_FILE].param); exit(1); -- cgit v1.2.3