From c181631de9b06654148c915479592cf2522f4a10 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 11 Jan 2023 18:47:23 +0100 Subject: [PATCH] ClangToolRunner: Ensure the clang tool is executable file Just checking that it's not empty is not enough. Change-Id: I635c975d72a8c00983aa1f748c169b2d8f6e05f1 Reviewed-by: Reviewed-by: David Schulz --- src/plugins/clangtools/clangtoolrunner.cpp | 3 ++- src/plugins/clangtools/documentclangtoolrunner.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/clangtools/clangtoolrunner.cpp b/src/plugins/clangtools/clangtoolrunner.cpp index b441ad51f81..dd0cfd41897 100644 --- a/src/plugins/clangtools/clangtoolrunner.cpp +++ b/src/plugins/clangtools/clangtoolrunner.cpp @@ -133,7 +133,8 @@ static QString createOutputFilePath(const FilePath &dirPath, const QString &file bool ClangToolRunner::run() { - QTC_ASSERT(!m_executable.isEmpty(), return false); + QTC_ASSERT(m_executable.isExecutableFile(), + qWarning() << "Can't start:" << m_executable << "as" << m_name; return false); QTC_CHECK(!m_input.unit.arguments.contains(QLatin1String("-o"))); QTC_CHECK(!m_input.unit.arguments.contains(m_input.unit.file)); QTC_ASSERT(FilePath::fromString(m_input.unit.file).exists(), return false); diff --git a/src/plugins/clangtools/documentclangtoolrunner.cpp b/src/plugins/clangtools/documentclangtoolrunner.cpp index 3854a71fc69..2d2bd2fb9ef 100644 --- a/src/plugins/clangtools/documentclangtoolrunner.cpp +++ b/src/plugins/clangtools/documentclangtoolrunner.cpp @@ -203,7 +203,7 @@ void DocumentClangToolRunner::run() const FilePath executable = toolExecutable(tool); const auto [includeDir, clangVersion] = getClangIncludeDirAndVersion(executable); - if (executable.isEmpty() || includeDir.isEmpty() || clangVersion.isEmpty()) + if (!executable.isExecutableFile() || includeDir.isEmpty() || clangVersion.isEmpty()) return; const AnalyzeUnit unit(m_fileInfo, includeDir, clangVersion); m_runnerCreators << [this, tool, unit, config, env] {