@@ -96,10 +96,12 @@ AlignValueUp(size_t value, size_t alignment) { |
96 | 96 | return (value + alignment - 1) & ~(alignment - 1); |
97 | 97 | } |
98 | 98 |
|
99 | | -#ifdef DEBUG_OUTPUT |
100 | | -static void |
| 99 | +static inline void |
101 | 100 | OutputLastError(const char *msg) |
102 | 101 | { |
| 102 | +#ifndef DEBUG_OUTPUT |
| 103 | + UNREFERENCED_PARAMETER(msg); |
| 104 | +#else |
103 | 105 | LPVOID tmp; |
104 | 106 | char *tmpmsg; |
105 | 107 | FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, |
@@ -109,8 +111,8 @@ OutputLastError(const char *msg) |
109 | 111 | OutputDebugString(tmpmsg); |
110 | 112 | LocalFree(tmpmsg); |
111 | 113 | LocalFree(tmp); |
112 | | -} |
113 | 114 | #endif |
| 115 | +} |
114 | 116 |
|
115 | 117 | static BOOL |
116 | 118 | CheckSize(size_t size, size_t expected) { |
@@ -240,9 +242,7 @@ FinalizeSection(PMEMORYMODULE module, PSECTIONFINALIZEDATA sectionData) { |
240 | 242 |
|
241 | 243 | // change memory access flags |
242 | 244 | if (VirtualProtect(sectionData->address, sectionData->size, protect, &oldProtect) == 0) { |
243 | | -#ifdef DEBUG_OUTPUT |
244 | | - OutputLastError("Error protecting memory page") |
245 | | -#endif |
| 245 | + OutputLastError("Error protecting memory page"); |
246 | 246 | return FALSE; |
247 | 247 | } |
248 | 248 |
|
@@ -341,16 +341,10 @@ PerformBaseRelocation(PMEMORYMODULE module, ptrdiff_t delta) |
341 | 341 | unsigned char *dest = codeBase + relocation->VirtualAddress; |
342 | 342 | unsigned short *relInfo = (unsigned short *)((unsigned char *)relocation + IMAGE_SIZEOF_BASE_RELOCATION); |
343 | 343 | for (i=0; i<((relocation->SizeOfBlock-IMAGE_SIZEOF_BASE_RELOCATION) / 2); i++, relInfo++) { |
344 | | - DWORD *patchAddrHL; |
345 | | -#ifdef _WIN64 |
346 | | - ULONGLONG *patchAddr64; |
347 | | -#endif |
348 | | - int type, offset; |
349 | | - |
350 | 344 | // the upper 4 bits define the type of relocation |
351 | | - type = *relInfo >> 12; |
| 345 | + int type = *relInfo >> 12; |
352 | 346 | // the lower 12 bits define the offset |
353 | | - offset = *relInfo & 0xfff; |
| 347 | + int offset = *relInfo & 0xfff; |
354 | 348 |
|
355 | 349 | switch (type) |
356 | 350 | { |
@@ -360,14 +354,18 @@ PerformBaseRelocation(PMEMORYMODULE module, ptrdiff_t delta) |
360 | 354 |
|
361 | 355 | case IMAGE_REL_BASED_HIGHLOW: |
362 | 356 | // change complete 32 bit address |
363 | | - patchAddrHL = (DWORD *) (dest + offset); |
364 | | - *patchAddrHL += (DWORD) delta; |
| 357 | + { |
| 358 | + DWORD *patchAddrHL = (DWORD *) (dest + offset); |
| 359 | + *patchAddrHL += (DWORD) delta; |
| 360 | + } |
365 | 361 | break; |
366 | 362 |
|
367 | 363 | #ifdef _WIN64 |
368 | 364 | case IMAGE_REL_BASED_DIR64: |
369 | | - patchAddr64 = (ULONGLONG *) (dest + offset); |
370 | | - *patchAddr64 += (ULONGLONG) delta; |
| 365 | + { |
| 366 | + ULONGLONG *patchAddr64 = (ULONGLONG *) (dest + offset); |
| 367 | + *patchAddr64 += (ULONGLONG) delta; |
| 368 | + } |
371 | 369 | break; |
372 | 370 | #endif |
373 | 371 |
|
@@ -528,10 +526,11 @@ HMEMORYMODULE MemoryLoadLibraryEx(const void *data, size_t size, |
528 | 526 | } |
529 | 527 |
|
530 | 528 | #ifdef _WIN64 |
531 | | - if (old_header->FileHeader.Machine != IMAGE_FILE_MACHINE_AMD64) { |
| 529 | + static const WORD HOST_MACHINE = IMAGE_FILE_MACHINE_AMD64; |
532 | 530 | #else |
533 | | - if (old_header->FileHeader.Machine != IMAGE_FILE_MACHINE_I386) { |
| 531 | + static const WORD HOST_MACHINE = IMAGE_FILE_MACHINE_I386; |
534 | 532 | #endif |
| 533 | + if (old_header->FileHeader.Machine != HOST_MACHINE) { |
535 | 534 | SetLastError(ERROR_BAD_EXE_FORMAT); |
536 | 535 | return NULL; |
537 | 536 | } |
|