| Index: src/processor/exploitability_linux.cc
|
| ===================================================================
|
| --- src/processor/exploitability_linux.cc (revision 1468)
|
| +++ src/processor/exploitability_linux.cc (working copy)
|
| @@ -82,10 +82,6 @@
|
| }
|
| }
|
|
|
| - // Check if the instruction pointer is in a valid instruction region
|
| - // by finding if it maps to an executable part of memory.
|
| - uint64_t instruction_ptr = 0;
|
| -
|
| // Getting exception data. (It should exist for all minidumps.)
|
| MinidumpException *exception = dump_->GetException();
|
| if (exception == NULL) {
|
| @@ -92,6 +88,21 @@
|
| BPLOG(INFO) << "No exception record.";
|
| return EXPLOITABILITY_ERR_PROCESSING;
|
| }
|
| + const MDRawExceptionStream *raw_exception_stream = exception->exception();
|
| + if (raw_exception_stream == NULL) {
|
| + BPLOG(INFO) << "No raw exception stream.";
|
| + return EXPLOITABILITY_ERR_PROCESSING;
|
| + }
|
| +
|
| + // Checking for benign exceptions that caused the crash.
|
| + if (this->BenignCrashTrigger(raw_exception_stream)) {
|
| + return EXPLOITABILITY_NONE;
|
| + }
|
| +
|
| + // Check if the instruction pointer is in a valid instruction region
|
| + // by finding if it maps to an executable part of memory.
|
| + uint64_t instruction_ptr = 0;
|
| +
|
| const MinidumpContext *context = exception->GetContext();
|
| if (context == NULL) {
|
| BPLOG(INFO) << "No exception context.";
|
| @@ -108,17 +119,6 @@
|
| return EXPLOITABILITY_HIGH;
|
| }
|
|
|
| - const MDRawExceptionStream *raw_exception_stream = exception->exception();
|
| - if (raw_exception_stream == NULL) {
|
| - BPLOG(INFO) << "No raw exception stream.";
|
| - return EXPLOITABILITY_ERR_PROCESSING;
|
| - }
|
| -
|
| - // Checking for benign exceptions that caused the crash.
|
| - if (this->BenignCrashTrigger(raw_exception_stream)) {
|
| - return EXPLOITABILITY_NONE;
|
| - }
|
| -
|
| return EXPLOITABILITY_INTERESTING;
|
| }
|
|
|
|
|