diff options
Diffstat (limited to 'src/processor/exploitability_linux.cc')
-rw-r--r-- | src/processor/exploitability_linux.cc | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/src/processor/exploitability_linux.cc b/src/processor/exploitability_linux.cc index 875df165..b5dc0e87 100644 --- a/src/processor/exploitability_linux.cc +++ b/src/processor/exploitability_linux.cc @@ -37,8 +37,8 @@ #include "processor/exploitability_linux.h" #include "google_breakpad/common/minidump_exception_linux.h" -#include "google_breakpad/processor/process_state.h" #include "google_breakpad/processor/call_stack.h" +#include "google_breakpad/processor/process_state.h" #include "google_breakpad/processor/stack_frame.h" #include "processor/logging.h" @@ -98,26 +98,9 @@ ExploitabilityRating ExploitabilityLinux::CheckPlatformExploitability() { return EXPLOITABILITY_ERR_PROCESSING; } - // Getting instruction pointer based off architecture. - uint32_t architecture = context->GetContextCPU(); - switch (architecture) { - case MD_CONTEXT_X86: - instruction_ptr = context->GetContextX86()->eip; - break; - case MD_CONTEXT_AMD64: - instruction_ptr = context->GetContextAMD64()->rip; - break; - case MD_CONTEXT_ARM: - instruction_ptr = - context->GetContextARM()->iregs[MD_CONTEXT_ARM_REG_PC]; - break; - case MD_CONTEXT_ARM64: - instruction_ptr = - context->GetContextARM64()->iregs[MD_CONTEXT_ARM64_REG_PC]; - break; - default: - BPLOG(INFO) << "Unsupported architecture."; - return EXPLOITABILITY_ERR_PROCESSING; + // Getting the instruction pointer. + if (!context->GetInstructionPointer(&instruction_ptr)) { + return EXPLOITABILITY_ERR_PROCESSING; } // Checking for the instruction pointer in a valid instruction region. |