From 3e7ef867dd55e17c9a1ccf73f3b32cdb4db883a5 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 15 Feb 2024 15:57:56 +0100 Subject: [PATCH] QmlJSPluginDumper: Prevent potential crash when no results in QFuture Ensure we don't reference non-existing QFuture's result. Change-Id: I57668390e6ca83ae30c0b1de3e3a083a344ddbaa Reviewed-by: Christian Kandeler --- src/libs/qmljs/qmljsplugindumper.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libs/qmljs/qmljsplugindumper.cpp b/src/libs/qmljs/qmljsplugindumper.cpp index d2407bb1137..b2591fbf0ab 100644 --- a/src/libs/qmljs/qmljsplugindumper.cpp +++ b/src/libs/qmljs/qmljsplugindumper.cpp @@ -427,6 +427,10 @@ QFuture PluginDumper::loadDependencies(const FileP Utils::onFinished(loadQmlTypeDescription(dependenciesPaths), const_cast(this), [this, iface, visited](const QFuture &typesFuture) { + if (typesFuture.resultCount() == 0 || typesFuture.isCanceled()) { + iface->reportCanceled(); + return; + } PluginDumper::QmlTypeDescription typesResult = typesFuture.result(); FilePaths newDependencies = FileUtils::toFilePathList(typesResult.dependencies);