Docker: Make sure temporary paths don't duplicate

Change-Id: I980f2a02c0a521d2d142573d94eb8850c26f0999
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-01-10 15:20:02 +01:00
parent b39010af79
commit b16c6495a0

View File

@@ -1105,12 +1105,21 @@ void DockerDeviceFactory::shutdownExistingDevices()
bool DockerDevicePrivate::addTemporaryMount(const FilePath &path, const FilePath &containerPath) bool DockerDevicePrivate::addTemporaryMount(const FilePath &path, const FilePath &containerPath)
{ {
bool alreadyAdded = anyOf(m_temporaryMounts, [containerPath](const TemporaryMountInfo &info) { const bool alreadyAdded = anyOf(m_temporaryMounts,
return info.containerPath == containerPath; [containerPath](const TemporaryMountInfo &info) {
}); return info.containerPath == containerPath;
});
if (alreadyAdded) if (alreadyAdded)
return false; return false;
const bool alreadyManuallyAdded = anyOf(m_data.mounts, [path](const QString &mount) {
return mount == path.path();
});
if (alreadyManuallyAdded)
return false;
const TemporaryMountInfo newMount{path, containerPath}; const TemporaryMountInfo newMount{path, containerPath};
const expected_str<void> result = isValidMountInfo(newMount); const expected_str<void> result = isValidMountInfo(newMount);