mirror of
https://github.com/acidanthera/OpenCorePkg.git
synced 2025-12-08 19:25:01 +00:00
OcMachoLib: Verify FileSize can handle at least the header and the minimal LC size.
This commit is contained in:
parent
c6bf9d0590
commit
1ce48bf040
@ -37,6 +37,7 @@ MachoInitializeContext (
|
||||
OUT OC_MACHO_CONTEXT *Context
|
||||
)
|
||||
{
|
||||
UINTN MinCommandsSize;
|
||||
UINTN TopOfCommands;
|
||||
UINTN Index;
|
||||
CONST MACH_LOAD_COMMAND *Command;
|
||||
@ -44,8 +45,11 @@ MachoInitializeContext (
|
||||
//
|
||||
// Verify MACH-O Header sanity.
|
||||
//
|
||||
TopOfCommands = ((UINTN)MachHeader->Commands + MachHeader->CommandsSize);
|
||||
if ((MachHeader->Signature != MACH_HEADER_64_SIGNATURE)
|
||||
TopOfCommands = ((UINTN)MachHeader->Commands + MachHeader->CommandsSize);
|
||||
MinCommandsSize = (MachHeader->NumberOfCommands * sizeof (*MachHeader->Commands));
|
||||
if ((FileSize < sizeof (*MachHeader))
|
||||
|| (MachHeader->Signature != MACH_HEADER_64_SIGNATURE)
|
||||
|| (MachHeader->CommandsSize < MinCommandsSize)
|
||||
|| (TopOfCommands > ((UINTN)MachHeader + FileSize))) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user