mirror_edk2/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers
Krzysztof Koch 62cefaf44e ShellPkg: acpiview: IORT: Prevent buffer overruns
Modify the IORT table parsing logic to prevent reading past the buffer
lengths provided.

Change DumpIortNodeIdMappings() function's signature and implementation
to simplify buffer overrun prevention. Update all calls to this
function accordingly.

Modify the parser for each type of IORT node such that the offset from
the start of the node's buffer is tracked as the parsing function is
executed. Again, this change helps prevent buffer overruns.

Test that the IORT node buffer fits in the table buffer before the
node's buffer contents are dumped.

References:
- IO Remapping Table (Issue D), Platform Design Document, March 2018

Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com>
Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Reviewed-by: Zhichao Gao <zhichao.gao@inte.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
2019-08-12 10:13:49 -07:00
..
Bgrt ShellPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:25 -07:00
Dbg2 ShellPkg: acpiview: DBG2: Prevent buffer overruns 2019-08-12 10:13:41 -07:00
Dsdt ShellPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:25 -07:00
Fadt ShellPkg: acpiview: FADT: Remove redundant forward declarations 2019-07-19 08:32:43 -07:00
Gtdt ShellPkg: acpiview: GTDT: Prevent buffer overruns 2019-08-12 10:13:46 -07:00
Iort ShellPkg: acpiview: IORT: Prevent buffer overruns 2019-08-12 10:13:49 -07:00
Madt ShellPkg: acpiview: MADT: Split structure length validation 2019-07-31 09:52:57 -07:00
Mcfg ShellPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:25 -07:00
Pptt ShellPkg: acpiview: Improve PPTT table field validation 2019-07-02 17:21:59 +08:00
Rsdp ShellPkg: acpiview: RSDP: Make code consistent with other parsers 2019-07-31 09:52:50 -07:00
Slit ShellPkg/AcpiView: Fix IA32 link error 2019-08-05 14:18:10 -07:00
Spcr ShellPkg: acpiview: SPCR: Remove redundant forward declaration 2019-07-19 08:32:49 -07:00
Srat ShellPkg: acpiview: SRAT: Minor code style enhancements 2019-07-31 09:52:53 -07:00
Ssdt ShellPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:25 -07:00
Xsdt ShellPkg: acpiview: XSDT: Remove redundant ParseAcpi() call 2019-07-31 09:52:47 -07:00