diff options
author | Nico Huber <nico.h@gmx.de> | 2017-01-26 23:22:46 +0100 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2017-06-06 19:31:38 +0200 |
commit | 3af69850507e6e6afac7c0de689bbd8545a6085a (patch) | |
tree | 9af795830d31439b41f0f916831378528fb15c4c /util/nvramtool/layout.c | |
parent | 00b9f4c4b1cd95a6cafe2b1e66641ff0f113082e (diff) | |
download | coreboot-3af69850507e6e6afac7c0de689bbd8545a6085a.tar.xz |
util/nvramtool: Bail out on unaligned multi-byte entries
coreboot doesn't support CMOS options that are not byte aligned but
span multiple bytes. So treat them as error.
Change-Id: I2bcff62f153932e9c6646b4ce08e8da1c1532947
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/18246
Reviewed-by: Philippe Mathieu-Daudé <philippe.mathieu.daude@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Diffstat (limited to 'util/nvramtool/layout.c')
-rw-r--r-- | util/nvramtool/layout.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/util/nvramtool/layout.c b/util/nvramtool/layout.c index 241dd19c6d..6fdb28216b 100644 --- a/util/nvramtool/layout.c +++ b/util/nvramtool/layout.c @@ -169,6 +169,9 @@ int add_cmos_entry(const cmos_entry_t * e, const cmos_entry_t ** conflict) if (e->length < 1) return LAYOUT_ENTRY_BAD_LENGTH; + if (e->bit % 8 && e->bit / 8 != (e->bit + e->length - 1) / 8) + return LAYOUT_MULTIBYTE_ENTRY_NOT_ALIGNED; + if ((new_entry = (cmos_entry_item_t *) malloc(sizeof(*new_entry))) == NULL) out_of_memory(); |