@@ -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
}
0 commit comments