Docker: Fix ensureReachable return value

DockerDevice::ensureReachable returned false in case a path was
already mounted.

Change-Id: I7b378a063dfe5380a1ead648f89911f2225c6338
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Marcus Tillmanns
2023-03-28 07:53:57 +02:00
parent 18045f3fe0
commit 0015c666d2

View File

@@ -725,6 +725,7 @@ bool DockerDevicePrivate::startContainer()
connect(m_shell.get(), &DeviceShell::done, this, [this](const ProcessResultData &resultData) { connect(m_shell.get(), &DeviceShell::done, this, [this](const ProcessResultData &resultData) {
if (m_shell) if (m_shell)
m_shell.release()->deleteLater(); m_shell.release()->deleteLater();
if (resultData.m_error != QProcess::UnknownError if (resultData.m_error != QProcess::UnknownError
|| resultData.m_exitStatus == QProcess::NormalExit) || resultData.m_exitStatus == QProcess::NormalExit)
return; return;
@@ -1248,12 +1249,18 @@ bool DockerDevicePrivate::ensureReachable(const FilePath &other)
const FilePath fMount = FilePath::fromString(mount); const FilePath fMount = FilePath::fromString(mount);
if (other.isChildOf(fMount)) if (other.isChildOf(fMount))
return true; return true;
if (fMount == other)
return true;
} }
for (const auto &[path, containerPath] : m_temporaryMounts) { for (const auto &[path, containerPath] : m_temporaryMounts) {
if (path.path() != containerPath.path()) if (path.path() != containerPath.path())
continue; continue;
if (path == other)
return true;
if (other.isChildOf(path)) if (other.isChildOf(path))
return true; return true;
} }