- Fix various warnings in inflib (thanks to Ged for help with what appears to be...
[reactos.git] / reactos / tools / pefixup.c
index 43d99aa..8c0ca7a 100644 (file)
@@ -39,6 +39,7 @@ typedef unsigned char BYTE, *PBYTE;
 typedef unsigned short WORD;
 typedef unsigned int DWORD;
 typedef int LONG;
+typedef long LONG_PTR;
 
 #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
 #define IMAGE_SIZEOF_SHORT_NAME 8
@@ -46,7 +47,7 @@ typedef int LONG;
 #define IMAGE_NT_SIGNATURE 0x00004550
 #define IMAGE_SCN_MEM_DISCARDABLE 0x2000000
 #define IMAGE_SCN_MEM_NOT_PAGED 0x8000000
-#define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f))
+#define FIELD_OFFSET(t,f) ((LONG)(LONG_PTR)&(((t*)0)->f))
 #define IMAGE_FIRST_SECTION(h) ((PIMAGE_SECTION_HEADER) ((unsigned long)h+FIELD_OFFSET(IMAGE_NT_HEADERS,OptionalHeader)+((PIMAGE_NT_HEADERS)(h))->FileHeader.SizeOfOptionalHeader))
 #define IMAGE_DIRECTORY_ENTRY_EXPORT 0
 
@@ -201,7 +202,7 @@ void *rva_to_ptr(DWORD rva)
    unsigned int i;
 
    for (i = 0, section_header = IMAGE_FIRST_SECTION(nt_header);
-        i < dtohl(nt_header->OptionalHeader.NumberOfRvaAndSizes);
+        i < dtohl(nt_header->FileHeader.NumberOfSections);
         i++, section_header++)
    {
       if (rva >= dtohl(section_header->VirtualAddress) &&
@@ -318,7 +319,7 @@ int main(int argc, char **argv)
 
    dos_header = (PIMAGE_DOS_HEADER)buffer;
    nt_header = (PIMAGE_NT_HEADERS)(buffer + dtohl(dos_header->e_lfanew));
-   
+
    if (dtohs(dos_header->e_magic) != IMAGE_DOS_SIGNATURE ||
        dtohl(nt_header->Signature) != IMAGE_NT_SIGNATURE)
    {