coreboot/util/cbfstool
Nico Huber af0d4bce65 region: Introduce region_create() functions
We introduce two new functions to create region objects. They allow us
to check for integer overflows (region_create_untrusted()) or assert
their absence (region_create()).

This fixes potential overflows in region_overlap() checks in SMI
handlers, where we would wrongfully report MMIO as *not* overlapping
SMRAM.

Also, two cases of strtol() in parse_region() (cbfstool),  where the
results were implicitly converted to `size_t`, are replaced with the
unsigned strtoul().

FIT payload support is left out, as it doesn't use the region API
(only the struct).

Change-Id: I4ae3e6274c981c9ab4fb1263c2a72fa68ef1c32b
Ticket: https://ticket.coreboot.org/issues/522
Found-by: Vadim Zaliva <lord@digamma.ai>
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79905
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2024-08-11 17:07:32 +00:00
..
bpdt_formats
console
flashmap
fpt_formats
lz4
lzma
tests
.gitignore
amdcompress.c
cbfs-mkpayload.c
cbfs-mkstage.c
cbfs-payload-linux.c
cbfs.h
cbfs_glue.h
cbfs_image.c
cbfs_image.h
cbfs_sections.c
cbfs_sections.h
cbfscomptool.c
cbfstool.c region: Introduce region_create() functions 2024-08-11 17:07:32 +00:00
coff.h
common.c
common.h
compress.c
cse_fpt.c
cse_fpt.h
cse_helpers.c
cse_helpers.h
cse_serger.c region: Introduce region_create() functions 2024-08-11 17:07:32 +00:00
cse_serger.h
default-x86.fmd
default.fmd
description.md
elf.h
elfheaders.c
elfparsing.h
elogtool.c
eventlog.c
eventlog.h
EXAMPLE
fdt.h
fit.c
fit.h
flashmap_tests.c
flashrom.c
flashrom.h
fmap_from_fmd.c
fmap_from_fmd.h
fmaptool.c
fmd.c
fmd.h
fmd_parser.c_shipped
fmd_parser.h_shipped
fmd_parser.y
fmd_scanner.c_shipped
fmd_scanner.h_shipped
fmd_scanner.l
fv.h
ifittool.c
ifwitool.c
linux.h
linux_trampoline.c
linux_trampoline.h
linux_trampoline.S
Makefile
Makefile.mk
option.h
partitioned_file.c
partitioned_file.h
platform_fixups.c
ProcessorBind.h
rmodtool.c
rmodule.c
rmodule.h
xdr.c