1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

PeFile ::readPeHeader should check ih.subsystem.

https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65526
https://github.com/upx/upx/issues/767
	modified:   pefile.cpp
This commit is contained in:
John Reiser 2024-01-10 16:28:17 -08:00 committed by Markus F.X.J. Oberhumer
parent f3728d99b9
commit e4a611bcae

View File

@ -3106,6 +3106,9 @@ PeFile32::~PeFile32() noexcept {}
void PeFile32::readPeHeader() {
fi->readx(&ih, sizeof(ih));
if (31 < (unsigned) ih.subsystem) {
throwCantPack("bad ih.subsystem 0x%x", (unsigned) ih.subsystem);
}
isefi = ((1u << ih.subsystem) &
((1u << IMAGE_SUBSYSTEM_EFI_APPLICATION) |
(1u << IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER) |
@ -3159,6 +3162,9 @@ PeFile64::~PeFile64() noexcept {}
void PeFile64::readPeHeader() {
fi->readx(&ih, sizeof(ih));
if (31 < (unsigned) ih.subsystem) {
throwCantPack("bad ih.subsystem 0x%x", (unsigned) ih.subsystem);
}
isefi = ((1u << ih.subsystem) &
((1u << IMAGE_SUBSYSTEM_EFI_APPLICATION) |
(1u << IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER) |