From c5e9fd57248de7758c4b507733075b8bbb7d2b0e Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Tue, 7 Nov 2023 14:19:36 -0500 Subject: TriageView Check for valid indexes before navigating to them --- examples/triage/exports.cpp | 4 ++-- examples/triage/imports.cpp | 4 ++-- examples/triage/strings.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'examples') diff --git a/examples/triage/exports.cpp b/examples/triage/exports.cpp index 808d1f01..5c96a6b2 100644 --- a/examples/triage/exports.cpp +++ b/examples/triage/exports.cpp @@ -88,7 +88,7 @@ QVariant GenericExportsModel::data(const QModelIndex& index, int role) const case Qt::DisplayRole: if (role != Qt::DisplayRole) return QVariant(); - if (index.row() >= (int)m_entries.size()) + if (!index.isValid() || index.row() >= (int)m_entries.size()) return QVariant(); if (index.column() == AddressColumn) return QString("0x") + QString::number(m_entries[index.row()]->GetAddress(), 16); @@ -155,7 +155,7 @@ QModelIndex GenericExportsModel::parent(const QModelIndex&) const SymbolRef GenericExportsModel::getSymbol(const QModelIndex& index) { - if (index.row() >= (int)m_entries.size()) + if (!index.isValid() || index.row() >= (int)m_entries.size()) return nullptr; return m_entries[index.row()]; } diff --git a/examples/triage/imports.cpp b/examples/triage/imports.cpp index 2009dccf..979967fd 100644 --- a/examples/triage/imports.cpp +++ b/examples/triage/imports.cpp @@ -55,7 +55,7 @@ QVariant GenericImportsModel::data(const QModelIndex& index, int role) const switch (role) { case Qt::DisplayRole: - if (index.row() >= (int)m_entries.size()) + if (!index.isValid() || index.row() >= (int)m_entries.size()) return QVariant(); if (index.column() == 0) return QString("0x") + QString::number(m_entries[index.row()]->GetAddress(), 16); @@ -122,7 +122,7 @@ QModelIndex GenericImportsModel::parent(const QModelIndex&) const SymbolRef GenericImportsModel::getSymbol(const QModelIndex& index) { - if (index.row() >= (int)m_entries.size()) + if (!index.isValid() || index.row() >= (int)m_entries.size()) return nullptr; return m_entries[index.row()]; } diff --git a/examples/triage/strings.cpp b/examples/triage/strings.cpp index 3284b84e..7c3f44e8 100644 --- a/examples/triage/strings.cpp +++ b/examples/triage/strings.cpp @@ -35,7 +35,7 @@ QVariant GenericStringsModel::data(const QModelIndex& index, int role) const switch (role) { case Qt::DisplayRole: - if (index.row() >= (int)m_entries.size()) + if (!index.isValid() || index.row() >= (int)m_entries.size()) return QVariant(); if (index.column() == 0) return QString("0x") + QString::number(m_entries[index.row()].start, 16); @@ -115,7 +115,7 @@ QString GenericStringsModel::stringRefToQString(const BNStringReference& stringR BNStringReference GenericStringsModel::getStringRefAt(const QModelIndex& index) const { - if (index.row() >= (int)m_entries.size()) + if (!index.isValid() || index.row() >= (int)m_entries.size()) return BNStringReference{}; return m_entries[index.row()]; } -- cgit v1.3.1