From 757a4f908b3b0e59bd9a752d9375654e238ae7a9 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Wed, 28 Aug 2019 16:32:22 +1200 Subject: [PATCH 1/2] Fix ScriptDiscoveryService.scriptsModel.data() crash for invalid row Also fixes unexpected data for invalid column > 1. --- libraries/script-engine/src/ScriptsModel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/script-engine/src/ScriptsModel.cpp b/libraries/script-engine/src/ScriptsModel.cpp index 5f30033bf9..233229f2eb 100644 --- a/libraries/script-engine/src/ScriptsModel.cpp +++ b/libraries/script-engine/src/ScriptsModel.cpp @@ -78,7 +78,7 @@ TreeNodeBase* ScriptsModel::getTreeNodeFromIndex(const QModelIndex& index) const } QModelIndex ScriptsModel::index(int row, int column, const QModelIndex& parent) const { - if (row < 0 || column < 0) { + if (row < 0 || row >= rowCount(parent) || column < 0 || column >= columnCount(parent)) { return QModelIndex(); } return createIndex(row, column, getFolderNodes(static_cast(getTreeNodeFromIndex(parent))).at(row)); From 8c735ed6aeac25e06f68905218e94b7999432d0d Mon Sep 17 00:00:00 2001 From: David Rowe Date: Wed, 28 Aug 2019 16:32:52 +1200 Subject: [PATCH 2/2] Fix ScriptDiscoveryService.scriptsModel.parent() crash for invalid index --- libraries/script-engine/src/ScriptsModel.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/script-engine/src/ScriptsModel.cpp b/libraries/script-engine/src/ScriptsModel.cpp index 233229f2eb..429c7f5518 100644 --- a/libraries/script-engine/src/ScriptsModel.cpp +++ b/libraries/script-engine/src/ScriptsModel.cpp @@ -85,6 +85,9 @@ QModelIndex ScriptsModel::index(int row, int column, const QModelIndex& parent) } QModelIndex ScriptsModel::parent(const QModelIndex& child) const { + if (!child.isValid()) { + return QModelIndex(); + } TreeNodeFolder* parent = (static_cast(child.internalPointer()))->getParent(); if (!parent) { return QModelIndex();