Merge pull request #574 from Dmitry-Me/resolveCid1288510

Resolve CID 1288510
This commit is contained in:
amai2012 2015-03-24 19:23:11 +01:00
commit a894300004
1 changed files with 6 additions and 3 deletions

View File

@ -596,17 +596,20 @@ static void PrintCallstack(FILE* f, PEXCEPTION_POINTERS ex)
static void writeMemoryErrorDetails(FILE* f, PEXCEPTION_POINTERS ex, const char* description) static void writeMemoryErrorDetails(FILE* f, PEXCEPTION_POINTERS ex, const char* description)
{ {
fputs(description, f); fputs(description, f);
// Using %p for ULONG_PTR later on, so it must have size identical to size of pointer
// This is not the universally portable solution but good enough for Win32/64
C_ASSERT(sizeof(void*) == sizeof(ex->ExceptionRecord->ExceptionInformation[1]));
switch (ex->ExceptionRecord->ExceptionInformation[0]) { switch (ex->ExceptionRecord->ExceptionInformation[0]) {
case 0: case 0:
fprintf(f, " reading from 0x%x", fprintf(f, " reading from 0x%p",
ex->ExceptionRecord->ExceptionInformation[1]); ex->ExceptionRecord->ExceptionInformation[1]);
break; break;
case 1: case 1:
fprintf(f, " writing at 0x%x", fprintf(f, " writing at 0x%p",
ex->ExceptionRecord->ExceptionInformation[1]); ex->ExceptionRecord->ExceptionInformation[1]);
break; break;
case 8: case 8:
fprintf(f, " data execution prevention at 0x%x", fprintf(f, " data execution prevention at 0x%p",
ex->ExceptionRecord->ExceptionInformation[1]); ex->ExceptionRecord->ExceptionInformation[1]);
break; break;
default: default: