Skip to content

Commit c021a10

Browse files
committed
Fix crash in triage view when opening with no default calling convention
1 parent 44ff0cf commit c021a10

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

examples/triage/analysisinfo.cpp

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -56,24 +56,26 @@ void AnalysisInfoWidget::timerExpired()
5656
void AnalysisInfoWidget::updateDisplay()
5757
{
5858
auto defaultPlatform = m_data->GetDefaultPlatform();
59-
if (!defaultPlatform)
60-
return;
61-
auto callingConvention = defaultPlatform->GetDefaultCallingConvention();
62-
auto gpRegister = callingConvention->GetGlobalPointerRegister();
63-
std::string gpString, gpExtraString;
64-
if (gpRegister == BN_INVALID_REGISTER)
65-
{
66-
gpString = "N/A";
67-
}
68-
else
59+
if (defaultPlatform)
6960
{
70-
auto gpValue = m_data->GetGlobalPointerValue();
71-
gpString = getStringForRegisterValue(m_data->GetDefaultArchitecture(), gpValue);
72-
gpExtraString = std::string(" @ ") + m_data->GetDefaultArchitecture()->GetRegisterName(gpRegister);
73-
if (m_data->UserGlobalPointerValueSet())
74-
gpExtraString += " (*)";
61+
auto callingConvention = defaultPlatform->GetDefaultCallingConvention();
62+
if (callingConvention)
63+
{
64+
auto gpRegister = callingConvention->GetGlobalPointerRegister();
65+
if (gpRegister != BN_INVALID_REGISTER)
66+
{
67+
auto gpValue = m_data->GetGlobalPointerValue();
68+
std::string gpString = getStringForRegisterValue(m_data->GetDefaultArchitecture(), gpValue);
69+
std::string gpExtraString = std::string(" @ ") + m_data->GetDefaultArchitecture()->GetRegisterName(gpRegister);
70+
if (m_data->UserGlobalPointerValueSet())
71+
gpExtraString += " (*)";
72+
73+
m_gpLabel->setText(QString::fromStdString(gpString));
74+
m_gpExtraLabel->setText(QString::fromStdString(gpExtraString));
75+
return;
76+
}
77+
}
7578
}
7679

77-
m_gpLabel->setText(QString::fromStdString(gpString));
78-
m_gpExtraLabel->setText(QString::fromStdString(gpExtraString));
80+
m_gpLabel->setText("N/A");
7981
}

0 commit comments

Comments
 (0)