\r
#ifndef __GNUC__\r
#include <windows.h>\r
+#include <io.h>\r
#endif\r
#include <stdio.h>\r
#include <stdlib.h>\r
#include <IndustryStandard/MemoryMappedConfigurationSpaceAccessTable.h>\r
\r
#include "CommonLib.h"\r
+#include "PeCoffLib.h"\r
+#include "ParseInf.h"\r
#include "EfiUtilityMsgs.h"\r
\r
#include "elf_common.h"\r
ExpectedLength = sizeof(EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE);\r
break;\r
default:\r
+ if (AcpiHeader->Revision > EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION) {\r
+ ExpectedLength = AcpiHeader->Length;\r
+ break;\r
+ }\r
Error (NULL, 0, 3000, "Invalid", "FACP revision check failed.");\r
return STATUS_ERROR;\r
}\r
//\r
case EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE:\r
Facs = (EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *)AcpiTable;\r
- if ((Facs->Version != 0) &&\r
+ if (Facs->Version > EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION) {\r
+ break;\r
+ }\r
+ if ((Facs->Version != EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION) &&\r
(Facs->Version != EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION) &&\r
(Facs->Version != EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION)){\r
Error (NULL, 0, 3000, "Invalid", "FACS version check failed.");\r
//\r
case EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE:\r
if (AcpiHeader->Revision > EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION) {\r
- Error (NULL, 0, 3000, "Invalid", "DSDT revision check failed.");\r
- return STATUS_ERROR;\r
+ break;\r
}\r
if (AcpiHeader->Length <= sizeof(EFI_ACPI_DESCRIPTION_HEADER)) {\r
Error (NULL, 0, 3000, "Invalid", "DSDT length check failed.");\r
// "APIC" Multiple APIC Description Table\r
//\r
case EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE:\r
+ if (AcpiHeader->Revision > EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION) {\r
+ break;\r
+ }\r
if ((AcpiHeader->Revision != EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION) &&\r
(AcpiHeader->Revision != EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION) &&\r
(AcpiHeader->Revision != EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION)) {\r
// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table\r
//\r
case EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE:\r
+ if (AcpiHeader->Revision > EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_REVISION) {\r
+ break;\r
+ }\r
if (AcpiHeader->Revision != EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_REVISION) {\r
Error (NULL, 0, 3000, "Invalid", "MCFG revision check failed.");\r
return STATUS_ERROR;\r
// PE section alignment.\r
//\r
const UINT32 CoffAlignment = 0x20;\r
-const UINT32 CoffNbrSections = 4;\r
+const UINT16 CoffNbrSections = 4;\r
\r
//\r
// Current offset in coff file.\r
return 0;\r
}\r
if (Ehdr->e_version != EV_CURRENT) {\r
- Error (NULL, 0, 3000, "Unsupported", "ELF e_version (%d) not EV_CURRENT (%d)", Ehdr->e_version, EV_CURRENT);\r
+ Error (NULL, 0, 3000, "Unsupported", "ELF e_version (%u) not EV_CURRENT (%d)", (unsigned) Ehdr->e_version, EV_CURRENT);\r
return 0;\r
}\r
\r
}\r
\r
NtHdr->Pe32.FileHeader.NumberOfSections = CoffNbrSections;\r
- NtHdr->Pe32.FileHeader.TimeDateStamp = time(NULL);\r
+ NtHdr->Pe32.FileHeader.TimeDateStamp = (UINT32) time(NULL);\r
NtHdr->Pe32.FileHeader.PointerToSymbolTable = 0;\r
NtHdr->Pe32.FileHeader.NumberOfSymbols = 0;\r
NtHdr->Pe32.FileHeader.SizeOfOptionalHeader = sizeof(NtHdr->Pe32.OptionalHeader);\r
//\r
// Ignore for unkown section type.\r
//\r
- VerboseMsg ("%s unknown section type %x. We directly copy this section into Coff file", mInImageName, (UINTN)Shdr->sh_type);\r
+ VerboseMsg ("%s unknown section type %x. We directly copy this section into Coff file", mInImageName, (unsigned)Shdr->sh_type);\r
break;\r
}\r
}\r
- (SecOffset - SecShdr->sh_addr);\r
break;\r
default:\r
- Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, ELF_R_TYPE(Rel->r_info));\r
+ Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info));\r
}\r
} else if (Ehdr->e_machine == EM_ARM) {\r
switch (ELF32_R_TYPE(Rel->r_info)) {\r
*(UINT32 *)Targ = *(UINT32 *)Targ - SymShdr->sh_addr + CoffSectionsOffset[Sym->st_shndx];\r
break;\r
default:\r
- Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, ELF32_R_TYPE(Rel->r_info));\r
+ Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, (unsigned) ELF32_R_TYPE(Rel->r_info));\r
}\r
}\r
}\r
//\r
// Fill the entry.\r
//\r
- CoffAddFixupEntry((Type << 12) | (Offset & 0xfff));\r
+ CoffAddFixupEntry((UINT16) ((Type << 12) | (Offset & 0xfff)));\r
}\r
\r
\r
EFI_IMAGE_REL_BASED_HIGHLOW);\r
break;\r
default:\r
- Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, ELF_R_TYPE(Rel->r_info));\r
+ Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info));\r
}\r
} else if (Ehdr->e_machine == EM_ARM) {\r
switch (ELF32_R_TYPE(Rel->r_info)) {\r
);\r
break;\r
default:\r
- Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, ELF32_R_TYPE(Rel->r_info));\r
+ Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, (unsigned) ELF32_R_TYPE(Rel->r_info));\r
}\r
} else {\r
- Error (NULL, 0, 3000, "Not Supported", "This tool does not support relocations for ELF with e_machine %d (processor type).", Ehdr->e_machine);\r
+ Error (NULL, 0, 3000, "Not Supported", "This tool does not support relocations for ELF with e_machine %u (processor type).", (unsigned) Ehdr->e_machine);\r
}\r
}\r
}\r
CHAR8 KeyWord [MAX_LINE_LEN];\r
CHAR8 SectionName [MAX_LINE_LEN];\r
UINT32 FunctionType = 0;\r
- UINT32 SectionOffset;\r
- UINT32 SectionLength;\r
- UINT32 SectionNumber;\r
+ unsigned SectionOffset = 0;\r
+ unsigned SectionLength = 0;\r
+ unsigned SectionNumber = 0;\r
CHAR8 *PdbPointer;\r
- INT32 Index = 0;\r
+ INT32 Index;\r
+ UINT32 Index2;\r
\r
- for (Index = 0; Index < SectionTotalNumber; Index ++) {\r
- if (stricmp ((char *)SectionHeader[Index].Name, ".zdata") == 0) {\r
+ for (Index2 = 0; Index2 < SectionTotalNumber; Index2++) {\r
+ if (stricmp ((char *)SectionHeader[Index2].Name, ".zdata") == 0) {\r
//\r
// try to zero the customized .zdata section, which is mapped to .xdata\r
//\r
- memset (FileBuffer + SectionHeader[Index].PointerToRawData, 0, SectionHeader[Index].SizeOfRawData);\r
- DebugMsg (NULL, 0, 9, NULL, "Zero the .xdata section for PE image at Offset 0x%x and Length 0x%x", SectionHeader[Index].PointerToRawData, SectionHeader[Index].SizeOfRawData);\r
+ memset (FileBuffer + SectionHeader[Index2].PointerToRawData, 0, SectionHeader[Index2].SizeOfRawData);\r
+ DebugMsg (NULL, 0, 9, NULL, "Zero the .xdata section for PE image at Offset 0x%x and Length 0x%x", (unsigned) SectionHeader[Index2].PointerToRawData, (unsigned) SectionHeader[Index2].SizeOfRawData);\r
return;\r
}\r
}\r
// Zero .xdata Section data\r
//\r
memset (FileBuffer + SectionHeader[SectionNumber-1].PointerToRawData + SectionOffset, 0, SectionLength);\r
- DebugMsg (NULL, 0, 9, NULL, "Zero the .xdata section for PE image at Offset 0x%x and Length 0x%x", SectionHeader[SectionNumber-1].PointerToRawData + SectionOffset, SectionLength);\r
+ DebugMsg (NULL, 0, 9, NULL, "Zero the .xdata section for PE image at Offset 0x%x and Length 0x%x", (unsigned) SectionHeader[SectionNumber-1].PointerToRawData + SectionOffset, SectionLength);\r
fclose (fpMapFile);\r
return;\r
}\r
goto Finish;\r
}\r
if (LogLevel > 9) {\r
- Error (NULL, 0, 1003, "Invalid option value", "Debug Level range is 0-9, currnt input level is %d", LogLevel);\r
+ Error (NULL, 0, 1003, "Invalid option value", "Debug Level range is 0-9, currnt input level is %d", (int) LogLevel);\r
goto Finish;\r
}\r
SetPrintLevel (LogLevel);\r
InputFileName = (CHAR8 **) malloc (MAXIMUM_INPUT_FILE_NUM * sizeof (CHAR8 *));\r
if (InputFileName == NULL) {\r
Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!");\r
- return EFI_OUT_OF_RESOURCES;\r
+ goto Finish;\r
}\r
\r
memset (InputFileName, 0, (MAXIMUM_INPUT_FILE_NUM * sizeof (CHAR8 *)));\r
\r
if (InputFileName == NULL) {\r
Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!");\r
- return EFI_OUT_OF_RESOURCES;\r
+ goto Finish;\r
}\r
\r
memset (&(InputFileName[InputFileNum]), 0, (MAXIMUM_INPUT_FILE_NUM * sizeof (CHAR8 *)));\r
}\r
\r
if (Index != FileLength) {\r
- Error (NULL, 0, 3000, "Invalid", "file length of %s (0x%x) does not equal expected TotalSize: 0x%04X.", mInImageName, FileLength, Index);\r
+ Error (NULL, 0, 3000, "Invalid", "file length of %s (0x%x) does not equal expected TotalSize: 0x%04X.", mInImageName, (unsigned) FileLength, (unsigned) Index);\r
goto Finish;\r
}\r
\r
Index += sizeof (*DataPointer);\r
}\r
if (CheckSum != 0) {\r
- Error (NULL, 0, 3000, "Invalid", "checksum (0x%x) failed on file %s.", CheckSum, mInImageName);\r
+ Error (NULL, 0, 3000, "Invalid", "checksum (0x%x) failed on file %s.", (unsigned) CheckSum, mInImageName);\r
goto Finish;\r
}\r
//\r
goto Finish;\r
}\r
}\r
- VerboseMsg ("the size of output file is %d bytes", FileLength);\r
+ VerboseMsg ("the size of output file is %u bytes", (unsigned) FileLength);\r
//\r
// Convert Mci.TXT to Mci.bin file successfully\r
//\r
fread (FileBuffer, 1, FileLength, fpIn);\r
fclose (fpIn);\r
\r
- DebugMsg (NULL, 0, 9, "input file info", "the input file size is %d bytes", FileLength);\r
+ DebugMsg (NULL, 0, 9, "input file info", "the input file size is %u bytes", (unsigned) FileLength);\r
\r
//\r
// Replace file\r
fprintf (fpInOut, "%17X number of sections\n", TEImageHeader.NumberOfSections);\r
fprintf (fpInOut, "%17X subsystems\n", TEImageHeader.Subsystem);\r
fprintf (fpInOut, "%17X stripped size\n", TEImageHeader.StrippedSize);\r
- fprintf (fpInOut, "%17X entry point\n", TEImageHeader.AddressOfEntryPoint);\r
- fprintf (fpInOut, "%17X base of code\n", TEImageHeader.BaseOfCode);\r
- fprintf (fpInOut, "%17lX image base\n", (long unsigned int)TEImageHeader.ImageBase);\r
- fprintf (fpInOut, "%17X [%8X] RVA [size] of Base Relocation Directory\n", TEImageHeader.DataDirectory[0].VirtualAddress, TEImageHeader.DataDirectory[0].Size);\r
- fprintf (fpInOut, "%17X [%8X] RVA [size] of Debug Directory\n", TEImageHeader.DataDirectory[1].VirtualAddress, TEImageHeader.DataDirectory[1].Size);\r
+ fprintf (fpInOut, "%17X entry point\n", (unsigned) TEImageHeader.AddressOfEntryPoint);\r
+ fprintf (fpInOut, "%17X base of code\n", (unsigned) TEImageHeader.BaseOfCode);\r
+ fprintf (fpInOut, "%17llX image base\n", (unsigned long long)TEImageHeader.ImageBase);\r
+ fprintf (fpInOut, "%17X [%8X] RVA [size] of Base Relocation Directory\n", (unsigned) TEImageHeader.DataDirectory[0].VirtualAddress, (unsigned) TEImageHeader.DataDirectory[0].Size);\r
+ fprintf (fpInOut, "%17X [%8X] RVA [size] of Debug Directory\n", (unsigned) TEImageHeader.DataDirectory[1].VirtualAddress, (unsigned) TEImageHeader.DataDirectory[1].Size);\r
}\r
\r
if (fpOut != NULL) {\r
fprintf (fpOut, "%17X number of sections\n", TEImageHeader.NumberOfSections);\r
fprintf (fpOut, "%17X subsystems\n", TEImageHeader.Subsystem);\r
fprintf (fpOut, "%17X stripped size\n", TEImageHeader.StrippedSize);\r
- fprintf (fpOut, "%17X entry point\n", TEImageHeader.AddressOfEntryPoint);\r
- fprintf (fpOut, "%17X base of code\n", TEImageHeader.BaseOfCode);\r
- fprintf (fpOut, "%17lX image base\n", (long unsigned int)TEImageHeader.ImageBase);\r
- fprintf (fpOut, "%17X [%8X] RVA [size] of Base Relocation Directory\n", TEImageHeader.DataDirectory[0].VirtualAddress, TEImageHeader.DataDirectory[0].Size);\r
- fprintf (fpOut, "%17X [%8X] RVA [size] of Debug Directory\n", TEImageHeader.DataDirectory[1].VirtualAddress, TEImageHeader.DataDirectory[1].Size);\r
+ fprintf (fpOut, "%17X entry point\n", (unsigned) TEImageHeader.AddressOfEntryPoint);\r
+ fprintf (fpOut, "%17X base of code\n", (unsigned) TEImageHeader.BaseOfCode);\r
+ fprintf (fpOut, "%17llX image base\n", (unsigned long long)TEImageHeader.ImageBase);\r
+ fprintf (fpOut, "%17X [%8X] RVA [size] of Base Relocation Directory\n", (unsigned) TEImageHeader.DataDirectory[0].VirtualAddress, (unsigned) TEImageHeader.DataDirectory[0].Size);\r
+ fprintf (fpOut, "%17X [%8X] RVA [size] of Debug Directory\n", (unsigned) TEImageHeader.DataDirectory[1].VirtualAddress, (unsigned) TEImageHeader.DataDirectory[1].Size);\r
}\r
goto Finish;\r
}\r
if (fpInOut != NULL) {\r
fwrite (FileBuffer + PeHdr->Pe32.OptionalHeader.SizeOfHeaders, 1, FileLength - PeHdr->Pe32.OptionalHeader.SizeOfHeaders, fpInOut);\r
}\r
- VerboseMsg ("the size of output file is %d bytes", FileLength - PeHdr->Pe32.OptionalHeader.SizeOfHeaders);\r
+ VerboseMsg ("the size of output file is %u bytes", (unsigned) (FileLength - PeHdr->Pe32.OptionalHeader.SizeOfHeaders));\r
goto Finish;\r
}\r
\r
if (OutImageType == FW_ZERO_DEBUG_IMAGE) {\r
Status = ZeroDebugData (FileBuffer, TRUE);\r
if (EFI_ERROR (Status)) {\r
- Error (NULL, 0, 3000, "Invalid", "Zero DebugData Error status is 0x%lx", (UINTN) Status);\r
+ Error (NULL, 0, 3000, "Invalid", "Zero DebugData Error status is 0x%x", (int) Status);\r
goto Finish;\r
}\r
\r
if (fpInOut != NULL) {\r
fwrite (FileBuffer, 1, FileLength, fpInOut);\r
}\r
- VerboseMsg ("the size of output file is %d bytes", FileLength);\r
+ VerboseMsg ("the size of output file is %u bytes", (unsigned) FileLength);\r
goto Finish;\r
}\r
\r
if (fpInOut != NULL) {\r
fwrite (FileBuffer, 1, FileLength, fpInOut);\r
}\r
- VerboseMsg ("the size of output file is %d bytes", FileLength);\r
+ VerboseMsg ("the size of output file is %u bytes", (unsigned) FileLength);\r
goto Finish;\r
}\r
\r
if (fpInOut != NULL) {\r
fwrite (FileBuffer + SectionHeader->PointerToRawData, 1, FileLength, fpInOut);\r
}\r
- VerboseMsg ("the size of output file is %d bytes", FileLength);\r
+ VerboseMsg ("the size of output file is %u bytes", (unsigned) FileLength);\r
goto Finish;\r
}\r
}\r
DosHdr->e_lfanew = BackupDosHdr.e_lfanew;\r
\r
for (Index = sizeof (EFI_IMAGE_DOS_HEADER); Index < (UINT32 ) DosHdr->e_lfanew; Index++) {\r
- FileBuffer[Index] = DosHdr->e_cp;\r
+ FileBuffer[Index] = (UINT8) DosHdr->e_cp;\r
}\r
}\r
\r
Optional32->SizeOfInitializedData -= (SectionHeader->SizeOfRawData - AllignedRelocSize);\r
SectionHeader->SizeOfRawData = AllignedRelocSize;\r
FileLength = Optional32->SizeOfImage;\r
- DebugMsg (NULL, 0, 9, "Remove the zero padding bytes at the end of the base relocations", "The size of padding bytes is %d", SectionHeader->SizeOfRawData - AllignedRelocSize);\r
+ DebugMsg (NULL, 0, 9, "Remove the zero padding bytes at the end of the base relocations", "The size of padding bytes is %u", (unsigned) (SectionHeader->SizeOfRawData - AllignedRelocSize));\r
}\r
}\r
}\r
Optional64->SizeOfInitializedData -= (SectionHeader->SizeOfRawData - AllignedRelocSize);\r
SectionHeader->SizeOfRawData = AllignedRelocSize;\r
FileLength = Optional64->SizeOfImage;\r
- DebugMsg (NULL, 0, 9, "Remove the zero padding bytes at the end of the base relocations", "The size of padding bytes is %d", SectionHeader->SizeOfRawData - AllignedRelocSize);\r
+ DebugMsg (NULL, 0, 9, "Remove the zero padding bytes at the end of the base relocations", "The size of padding bytes is %u", (unsigned) (SectionHeader->SizeOfRawData - AllignedRelocSize));\r
}\r
}\r
}\r
goto Finish;\r
}\r
\r
- DebugMsg (NULL, 0, 9, "TeImage Header Info", "Machine type is %X, Number of sections is %X, Stripped size is %X, EntryPoint is %X, BaseOfCode is %X, ImageBase is %X",\r
- TEImageHeader.Machine, TEImageHeader.NumberOfSections, TEImageHeader.StrippedSize, TEImageHeader.AddressOfEntryPoint, TEImageHeader.BaseOfCode, TEImageHeader.ImageBase);\r
+ DebugMsg (NULL, 0, 9, "TeImage Header Info", "Machine type is %X, Number of sections is %X, Stripped size is %X, EntryPoint is %X, BaseOfCode is %X, ImageBase is %llX",\r
+ TEImageHeader.Machine, TEImageHeader.NumberOfSections, TEImageHeader.StrippedSize, (unsigned) TEImageHeader.AddressOfEntryPoint, (unsigned) TEImageHeader.BaseOfCode, (unsigned long long) TEImageHeader.ImageBase);\r
//\r
// Update Image to TeImage\r
//\r
fwrite (&TEImageHeader, 1, sizeof (EFI_TE_IMAGE_HEADER), fpInOut);\r
fwrite (FileBuffer + TEImageHeader.StrippedSize, 1, FileLength - TEImageHeader.StrippedSize, fpInOut);\r
}\r
- VerboseMsg ("the size of output file is %d bytes", FileLength - TEImageHeader.StrippedSize);\r
+ VerboseMsg ("the size of output file is %u bytes", (unsigned) (FileLength - TEImageHeader.StrippedSize));\r
goto Finish;\r
}\r
WriteFile:\r
if (fpInOut != NULL) {\r
fwrite (FileBuffer, 1, FileLength, fpInOut);\r
}\r
- VerboseMsg ("the size of output file is %d bytes", FileLength);\r
+ VerboseMsg ("the size of output file is %u bytes", (unsigned) FileLength);\r
\r
Finish:\r
if (fpInOut != NULL) {\r
struct tm stime;\r
struct tm *ptime;\r
time_t newtime;\r
- UINT32 Index;\r
- UINT32 DebugDirectoryEntryRva;\r
- UINT32 DebugDirectoryEntryFileOffset;\r
- UINT32 ExportDirectoryEntryRva;\r
- UINT32 ExportDirectoryEntryFileOffset;\r
- UINT32 ResourceDirectoryEntryRva;\r
- UINT32 ResourceDirectoryEntryFileOffset;\r
+ UINT32 Index;\r
+ UINT32 DebugDirectoryEntryRva;\r
+ UINT32 DebugDirectoryEntryFileOffset;\r
+ UINT32 ExportDirectoryEntryRva;\r
+ UINT32 ExportDirectoryEntryFileOffset;\r
+ UINT32 ResourceDirectoryEntryRva;\r
+ UINT32 ResourceDirectoryEntryFileOffset;\r
EFI_IMAGE_DOS_HEADER *DosHdr;\r
EFI_IMAGE_FILE_HEADER *FileHdr;\r
EFI_IMAGE_OPTIONAL_HEADER32 *Optional32Hdr;\r
//\r
// Init variable.\r
//\r
- DebugDirectoryEntryRva = 0;\r
- ExportDirectoryEntryRva = 0;\r
- ResourceDirectoryEntryRva = 0;\r
+ DebugDirectoryEntryRva = 0;\r
+ DebugDirectoryEntryFileOffset = 0;\r
+ ExportDirectoryEntryRva = 0;\r
+ ExportDirectoryEntryFileOffset = 0;\r
+ ResourceDirectoryEntryRva = 0;\r
+ ResourceDirectoryEntryFileOffset = 0;\r
//\r
// Get time and date that will be set.\r
//\r
{\r
CHAR8 Line[MAX_LINE_LEN];\r
CHAR8 *cptr;\r
+ unsigned ScannedData = 0;\r
\r
Line[MAX_LINE_LEN - 1] = 0;\r
while (1) {\r
for (; *cptr && isspace(*cptr); cptr++) {\r
}\r
if (isxdigit (*cptr)) {\r
- if (sscanf (cptr, "%X", Data) != 1) {\r
+ if (sscanf (cptr, "%X", &ScannedData) != 1) {\r
return STATUS_ERROR;\r
}\r
}\r
+ *Data = (UINT32) ScannedData;\r
return STATUS_SUCCESS;\r
}\r
\r