summaryrefslogtreecommitdiff
path: root/examples/triage
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2024-08-11 09:43:39 -0700
committerMason Reed <mason@vector35.com>2024-08-11 09:43:39 -0700
commitc021a100bad30219de5011cad6264a6289418005 (patch)
tree4b5d7668023907f861ee03ba7c0cce8c3681c5a1 /examples/triage
parent44ff0cfd6bd87e4fbd8458502bd9dccb4c9cf938 (diff)
Fix crash in triage view when opening with no default calling convention
Diffstat (limited to 'examples/triage')
-rw-r--r--examples/triage/analysisinfo.cpp36
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");
}