Dmitry Timoshkov wrote:

"Andrew Talbot" <[EMAIL PROTECTED]> wrote:

#define IMAGE_FIRST_SECTION(ntheader) \
- ((PIMAGE_SECTION_HEADER)((LPBYTE)&((PIMAGE_NT_HEADERS)(ntheader))->OptionalHeader + \ - ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader)) + ((PIMAGE_SECTION_HEADER)((LPBYTE)&((PIMAGE_NT_HEADERS)(UINT32)(ntheader))->OptionalHeader + \ + ((PIMAGE_NT_HEADERS)(UINT32)(ntheader))->FileHeader.SizeOfOptionalHeader))


UINT32 is not a 64-bit safe type. Please use ULONG_PTR instead.

actually, this would be better written as:
((PIMAGE_SECTION_HEADER)(DWORD_PTR)((LPCBYTE)&((const IMAGE_NT_HEADERS*)(ntheader))->OptionalHeader + \ ((const IMAGE_NT_HEADERS*)(ntheader))->FileHeader.SizeOfOptionalHeader))


Reply via email to