From 1811b381ebe195262a14bda86852aca055b99245 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 27 Apr 2022 15:09:32 +0200 Subject: [PATCH] ProjectExplorer: Prevent out of range access on recent projects list ProjectExplorerPlugin::recentProjects() filters out non-existent files. Because files could at any time be removed/renamed, we cannot presume a certain, constant length of the list when calling recentProjects() a second time. Fixes: QTCREATORBUG-27399 Change-Id: I3f09830896b308e251881c855abb552b6022695f Reviewed-by: Reviewed-by: Eike Ziller --- src/plugins/projectexplorer/projectwelcomepage.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/projectwelcomepage.cpp b/src/plugins/projectexplorer/projectwelcomepage.cpp index e1adf657ad2..2382103d910 100644 --- a/src/plugins/projectexplorer/projectwelcomepage.cpp +++ b/src/plugins/projectexplorer/projectwelcomepage.cpp @@ -83,7 +83,10 @@ int ProjectModel::rowCount(const QModelIndex &) const QVariant ProjectModel::data(const QModelIndex &index, int role) const { - QPair data = ProjectExplorerPlugin::recentProjects().at(index.row()); + const QList > recentProjects = ProjectExplorerPlugin::recentProjects(); + if (recentProjects.count() <= index.row()) + return {}; + QPair data = recentProjects.at(index.row()); switch (role) { case Qt::DisplayRole: return data.second;