audk/MdePkg
Ard Biesheuvel 94c802e108 MdePkg/BasePeCoffLib: Deal with broken debug directories
Older versions of GenFw put the wrong value in the debug directory size
field in the PE/COFF header: instead of putting the combined size of all
the entries, it puts the size of the only entry it creates, but adds the
size of the NB10 payload that the entry points to. This confuses the
loader now that we started using additional debug directory entries to
describe DLL characteristics.

GenFw was fixed in commit 60e85a39fe, but the binaries that were
generated with it still need to be supported.

So let's detect this condition, and check whether the size of the debug
directory is consistent with the NB10 payload: if we should expect
additional directory entries where we observe the NB10 payload, the size
field is clearly wrong, and we can break from the loop.

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4425
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Tested-by: Liming Gao <gaoliming@byosoft.com.cn>
Acked-by: Michael Kubacki <michael.kubacki@microsoft.com>
2023-05-05 08:11:22 +00:00
..
Include MdePkg: Support FDT library. 2023-05-05 03:45:21 +00:00
Library MdePkg/BasePeCoffLib: Deal with broken debug directories 2023-05-05 08:11:22 +00:00
Test MdePkg: Add gmock examples 2023-04-10 05:59:02 +00:00
MdeLibs.dsc.inc MdePkg/ArmTrngLib: Add NULL instance of Arm TRNG Library 2022-11-06 16:32:28 +00:00
MdePkg.ci.yaml MdePkg: Support FDT library. 2023-05-05 03:45:21 +00:00
MdePkg.dec MdePkg: Support FDT library. 2023-05-05 03:45:21 +00:00
MdePkg.dsc MdePkg: Support FDT library. 2023-05-05 03:45:21 +00:00
MdePkg.uni MdePkg: Add PcdSpeculationBarrierType 2019-04-30 16:39:09 -07:00
MdePkgExtra.uni MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00