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 <patrick.georgi@secunet.com> Reviewed-on: http://review.coreboot.org/3186 Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
2fde9668b4
commit
a98d3061e9
|
@ -162,8 +162,8 @@ int main(int argc, char *argv[])
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fd_stat.st_size < 128) {
|
if (fd_stat.st_size < CMOS_SIZE) {
|
||||||
lseek(fd, 127, SEEK_SET);
|
lseek(fd, CMOS_SIZE - 1, SEEK_SET);
|
||||||
if (write(fd, "\0", 1) != 1) {
|
if (write(fd, "\0", 1) != 1) {
|
||||||
fprintf(stderr, "Unable to extended '%s' to its full size.\n",
|
fprintf(stderr, "Unable to extended '%s' to its full size.\n",
|
||||||
nvramtool_op_modifiers[NVRAMTOOL_MOD_USE_CMOS_FILE].param);
|
nvramtool_op_modifiers[NVRAMTOOL_MOD_USE_CMOS_FILE].param);
|
||||||
|
@ -176,7 +176,7 @@ int main(int argc, char *argv[])
|
||||||
#endif
|
#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) {
|
if (cmos_default == MAP_FAILED) {
|
||||||
fprintf(stderr, "Couldn't map '%s'\n", nvramtool_op_modifiers[NVRAMTOOL_MOD_USE_CMOS_FILE].param);
|
fprintf(stderr, "Couldn't map '%s'\n", nvramtool_op_modifiers[NVRAMTOOL_MOD_USE_CMOS_FILE].param);
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
Loading…
Reference in New Issue