Bug 991039: Disable IOInterposer in FPEFilter; r=ted
authorAaron Klotz <aklotz@mozilla.com>
Wed, 02 Apr 2014 11:49:56 -0600
changeset 195235 d07b3f034bd5e7a3c22ac865759460c6a2c2de06
parent 195234 47036286fedac01cd91fb32b4e4851f31202b75a
child 195236 e2b579890ce7db195f56931db003d2904025d26e
push idunknown
push userunknown
push dateunknown
reviewersted
bugs991039
milestone31.0a1
Bug 991039: Disable IOInterposer in FPEFilter; r=ted
toolkit/crashreporter/nsExceptionHandler.cpp
--- a/toolkit/crashreporter/nsExceptionHandler.cpp
+++ b/toolkit/crashreporter/nsExceptionHandler.cpp
@@ -867,16 +867,17 @@ FreeBreakpadVM()
  * and should not be handled as crashes.
  *
  * Also calls FreeBreakpadVM if appropriate.
  */
 static bool FPEFilter(void* context, EXCEPTION_POINTERS* exinfo,
                       MDRawAssertionInfo* assertion)
 {
   if (!exinfo) {
+    mozilla::IOInterposer::Disable();
     FreeBreakpadVM();
     return true;
   }
 
   PEXCEPTION_RECORD e = (PEXCEPTION_RECORD)exinfo->ExceptionRecord;
   switch (e->ExceptionCode) {
     case STATUS_FLOAT_DENORMAL_OPERAND:
     case STATUS_FLOAT_DIVIDE_BY_ZERO:
@@ -884,16 +885,17 @@ static bool FPEFilter(void* context, EXC
     case STATUS_FLOAT_INVALID_OPERATION:
     case STATUS_FLOAT_OVERFLOW:
     case STATUS_FLOAT_STACK_CHECK:
     case STATUS_FLOAT_UNDERFLOW:
     case STATUS_FLOAT_MULTIPLE_FAULTS:
     case STATUS_FLOAT_MULTIPLE_TRAPS:
       return false; // Don't write minidump, continue exception search
   }
+  mozilla::IOInterposer::Disable();
   FreeBreakpadVM();
   return true;
 }
 #endif // XP_WIN
 
 static bool ShouldReport()
 {
   // this environment variable prevents us from launching