提交 6fdd4a28 编写于 作者: V vit9696

OcXmlLib: Treat non-hex data as integer data

In 11.0 kc plist pointer data is in decimal
上级 e09b29d7
......@@ -18,7 +18,7 @@ Utilities/TestBmf/Bmf
Utilities/TestDiskImage/DiskImage
Utilities/TestHelloWorld/HelloWorld
Utilities/TestImg4/Img4
Utilities/TestKernelCollection/KernelCollection
Utilities/TestKernelCollection2/KernelCollection2
Utilities/TestKextInject/KextInject
Utilities/TestKextInject/Result.xml
Utilities/TestMacho/Macho
......
......@@ -592,7 +592,7 @@ PrelinkedInjectComplete (
ASSERT (ChainSize <= Context->KextsFixupChains->Size);
Context->KextsFixupChains->Size = ChainSize;
Context->KextsFixupChains->PageCount = KextsSize / MACHO_PAGE_SIZE;
Context->KextsFixupChains->PageCount = (UINT16) (KextsSize / MACHO_PAGE_SIZE);
Status = KcRebuildMachHeader (Context);
if (EFI_ERROR (Status)) {
......
......@@ -1550,6 +1550,10 @@ PlistIntegerValue (
++TempStr;
}
if (Hex && TempStr[0] != '0' && TempStr[1] != 'x') {
Hex = FALSE;
}
if (Hex) {
Temp = AsciiStrHexToUint64 (TempStr);
} else {
......
......@@ -124,6 +124,9 @@ int main(int argc, char** argv) {
UINT32 AllocSize;
PRELINKED_CONTEXT Context;
PcdGet32 (PcdFixedDebugPrintErrorLevel) |= DEBUG_INFO;
PcdGet32 (PcdDebugPrintErrorLevel) |= DEBUG_INFO;
if ((Prelinked = readFile(argc > 1 ? argv[1] : "/System/Library/KernelCollections/BootKernelExtensions.kc", &PrelinkedSize)) == NULL) {
printf("Read fail\n");
return -1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册