coreboot/util/cbfstool
Martin Roth 480ac15044 util/cbfstool: Prevent overflow when sorting fit table entries
If fit_table_entries() fails, it returns zero, but the sort loop
subtracts 1 from that value before comparing for the loop termination.
Since the value is unsigned, this results in wraparound overflow,
effectively causing an infinite loop. To mitigate this, store the
number of FIT entries as an int, and use that for the loop exit
condition check. Use int type for the loop counters as well to
avoid the compiler complaining about an signed/unsigned comparison.

BUG=CID 1612099

Change-Id: Id0a16bdb86d075ec6c322b44fd782f81d15ca6a7
Signed-off-by: Martin Roth <gaumless@gmail.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88324
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-22 16:29:34 +00:00
..
bpdt_formats util: Rename Makefiles from .inc to .mk 2024-01-26 12:43:18 +00:00
console
flashmap util/cbfstool: Refine type and signatures 2025-01-12 07:54:27 +00:00
fpt_formats util: Rename Makefiles from .inc to .mk 2024-01-26 12:43:18 +00:00
lz4 tree: Replace scan-build by clang-tidy 2025-07-01 01:12:32 +00:00
lzma
tests
.gitignore
amdcompress.c
cbfs-mkpayload.c cbfs: Remove broken remnants of PAYLOAD_INFO feature 2024-03-13 18:51:11 +00:00
cbfs-mkstage.c util/cbfstool: Deal with how lld organizes loadable segments 2024-11-06 04:54:22 +00:00
cbfs-payload-linux.c util/cbfstool/cbfs-payload-linux: Copy segments when compression fails 2025-07-04 13:18:17 +00:00
cbfs.h cbfstool: Add printing of legacy stage type 2024-03-27 14:00:56 +00:00
cbfs_glue.h
cbfs_image.c util/cbfstool: Add missing \n and use __func__ in debug messages 2025-02-27 16:24:53 +00:00
cbfs_image.h
cbfs_sections.c
cbfs_sections.h
cbfscomptool.c
cbfstool.c cbfstool: Fix the help text 2025-03-10 05:26:46 +00:00
coff.h
common.c treewide: Work around GCC 15 Werror=unterminated-string-initialization 2025-06-09 07:19:09 +00:00
common.h util/cbfstool/common.h Fix wrong return value doc 2024-08-05 13:10:08 +00:00
compress.c
cse_fpt.c
cse_fpt.h
cse_helpers.c
cse_helpers.h
cse_serger.c region: Turn region_end() into an inclusive region_last() 2024-08-23 01:08:16 +00:00
cse_serger.h
default-x86.fmd mb/*/*/*.fmd: Start flash at 0 2025-04-09 17:11:43 +00:00
default.fmd mb/*/*/*.fmd: Start flash at 0 2025-04-09 17:11:43 +00:00
description.md
elf.h
elfheaders.c cbfstool: Read XIP stage alignment requirements from ELF 2024-06-20 19:34:14 +00:00
elfparsing.h cbfstool: Read XIP stage alignment requirements from ELF 2024-06-20 19:34:14 +00:00
elogtool.c
eventlog.c util/cbfstool/eventlog: Add low battery event type 2025-02-10 15:14:13 +00:00
eventlog.h
EXAMPLE
fdt.h
fit.c util/cbfstool: Prevent overflow when sorting fit table entries 2025-07-22 16:29:34 +00:00
fit.h util/cbfstool: Add Intel platform boot policy support 2024-10-23 10:29:59 +00:00
flashmap_tests.c
flashrom.c util: Drop flashrom -p host alias which equals to -p internal 2023-09-25 14:06:32 +00:00
flashrom.h
fmap_from_fmd.c
fmap_from_fmd.h
fmaptool.c
fmd.c
fmd.h
fmd_parser.c_shipped util/cbfstool: Revise lex/yacc (bison) generation 2023-09-28 21:28:37 +00:00
fmd_parser.h_shipped util/cbfstool: Revise lex/yacc (bison) generation 2023-09-28 21:28:37 +00:00
fmd_parser.y
fmd_scanner.c_shipped util/cbfstool: Revise lex/yacc (bison) generation 2023-09-28 21:28:37 +00:00
fmd_scanner.h_shipped util/cbfstool: Revise lex/yacc (bison) generation 2023-09-28 21:28:37 +00:00
fmd_scanner.l
fv.h
ifittool.c
ifwitool.c util: Use C99 flexible arrays 2023-08-01 12:51:25 +00:00
linux.h
linux_trampoline.c util/cbfstool/linux_trampoline: Support more e820 entries 2024-02-18 07:50:28 +00:00
linux_trampoline.h
linux_trampoline.S util/cbfstool: Fix linux_trampoline.c generation 2024-06-03 16:54:02 +00:00
Makefile util: Break up spdx identifier text in scripts & makefiles 2024-06-19 17:42:43 +00:00
Makefile.mk util: Rename Makefiles from .inc to .mk 2024-01-26 12:43:18 +00:00
option.h
partitioned_file.c
partitioned_file.h
platform_fixups.c cbfstool: Add multi ELF support 2025-06-26 16:56:14 +00:00
ProcessorBind.h
rmodtool.c
rmodule.c cbfstool: Skip relocation entries pointing to undefined symbol 2023-10-20 14:32:20 +00:00
rmodule.h cbfstool: Make add-stage support multiple loadable segments 2023-09-14 21:01:56 +00:00
xdr.c