summaryrefslogtreecommitdiff
path: root/src/qtattributionsscanner
diff options
context:
space:
mode:
authorKai Köhne <kai.koehne@qt.io>2023-01-03 11:22:30 +0100
committerKai Köhne <kai.koehne@qt.io>2023-01-05 14:29:55 +0100
commit39fdcb8e7a366ecea74c90bc86dc8c2068ae5bce (patch)
treea54378bd15c1e88b772161b5fcf497fdfa6c7cea /src/qtattributionsscanner
parent03af089b10e510f2e7eec4776cf9b126d520f901 (diff)
downloadqttools-39fdcb8e7a366ecea74c90bc86dc8c2068ae5bce.tar.gz
qtattributionsscanner: Do not get stuck for invalid Path
Do check early on that the Path directory actually exists, and print a warning if not. Pick-to: 6.4 6.5 Change-Id: I4a09182820f809e2f004101886d2f6ee0515dbd6 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/qtattributionsscanner')
-rw-r--r--src/qtattributionsscanner/scanner.cpp32
1 files changed, 21 insertions, 11 deletions
diff --git a/src/qtattributionsscanner/scanner.cpp b/src/qtattributionsscanner/scanner.cpp
index 703c9db00..20666c71e 100644
--- a/src/qtattributionsscanner/scanner.cpp
+++ b/src/qtattributionsscanner/scanner.cpp
@@ -77,16 +77,25 @@ static bool validatePackage(Package &p, const QString &filePath, LogLevel logLev
}
const QDir dir = p.path;
- for (const QString &file : std::as_const(p.files)) {
- if (!dir.exists(file)) {
- if (logLevel != SilentLog) {
- std::cerr << qPrintable(tr("File %1: Path '%2' does not exist in directory '%3'.")
- .arg(QDir::toNativeSeparators(filePath),
- QDir::toNativeSeparators(file),
- QDir::toNativeSeparators(p.path)))
- << std::endl;
+ if (!dir.exists()) {
+ std::cerr << qPrintable(
+ tr("File %1: Directory '%2' does not exist.")
+ .arg(QDir::toNativeSeparators(filePath), QDir::toNativeSeparators(p.path)))
+ << std::endl;
+ validPackage = false;
+ } else {
+ for (const QString &file : std::as_const(p.files)) {
+ if (!dir.exists(file)) {
+ if (logLevel != SilentLog) {
+ std::cerr << qPrintable(
+ tr("File %1: Path '%2' does not exist in directory '%3'.")
+ .arg(QDir::toNativeSeparators(filePath),
+ QDir::toNativeSeparators(file),
+ QDir::toNativeSeparators(p.path)))
+ << std::endl;
+ }
+ validPackage = false;
}
- validPackage = false;
}
}
@@ -142,11 +151,12 @@ static QString locateLicensesDir(const QString &packageDir)
static const QString licensesSubDir = u"LICENSES"_s;
QDir dir(packageDir);
while (true) {
+ if (!dir.exists())
+ break;
if (dir.cd(licensesSubDir))
return dir.path();
- if (dir.isRoot())
+ if (dir.isRoot() || !dir.cdUp())
break;
- dir.cdUp();
}
return {};
}