diff options
| author | Mason Reed <mason@vector35.com> | 2024-08-11 09:43:39 -0700 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2024-08-11 09:43:39 -0700 |
| commit | c021a100bad30219de5011cad6264a6289418005 (patch) | |
| tree | 4b5d7668023907f861ee03ba7c0cce8c3681c5a1 /examples/triage | |
| parent | 44ff0cfd6bd87e4fbd8458502bd9dccb4c9cf938 (diff) | |
Fix crash in triage view when opening with no default calling convention
Diffstat (limited to 'examples/triage')
| -rw-r--r-- | examples/triage/analysisinfo.cpp | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/examples/triage/analysisinfo.cpp b/examples/triage/analysisinfo.cpp index 3719fcbe..cd18e242 100644 --- a/examples/triage/analysisinfo.cpp +++ b/examples/triage/analysisinfo.cpp @@ -56,24 +56,26 @@ void AnalysisInfoWidget::timerExpired() void AnalysisInfoWidget::updateDisplay() { auto defaultPlatform = m_data->GetDefaultPlatform(); - if (!defaultPlatform) - return; - auto callingConvention = defaultPlatform->GetDefaultCallingConvention(); - auto gpRegister = callingConvention->GetGlobalPointerRegister(); - std::string gpString, gpExtraString; - if (gpRegister == BN_INVALID_REGISTER) - { - gpString = "N/A"; - } - else + if (defaultPlatform) { - auto gpValue = m_data->GetGlobalPointerValue(); - gpString = getStringForRegisterValue(m_data->GetDefaultArchitecture(), gpValue); - gpExtraString = std::string(" @ ") + m_data->GetDefaultArchitecture()->GetRegisterName(gpRegister); - if (m_data->UserGlobalPointerValueSet()) - gpExtraString += " (*)"; + auto callingConvention = defaultPlatform->GetDefaultCallingConvention(); + if (callingConvention) + { + auto gpRegister = callingConvention->GetGlobalPointerRegister(); + if (gpRegister != BN_INVALID_REGISTER) + { + auto gpValue = m_data->GetGlobalPointerValue(); + std::string gpString = getStringForRegisterValue(m_data->GetDefaultArchitecture(), gpValue); + std::string gpExtraString = std::string(" @ ") + m_data->GetDefaultArchitecture()->GetRegisterName(gpRegister); + if (m_data->UserGlobalPointerValueSet()) + gpExtraString += " (*)"; + + m_gpLabel->setText(QString::fromStdString(gpString)); + m_gpExtraLabel->setText(QString::fromStdString(gpExtraString)); + return; + } + } } - m_gpLabel->setText(QString::fromStdString(gpString)); - m_gpExtraLabel->setText(QString::fromStdString(gpExtraString)); + m_gpLabel->setText("N/A"); } |
