From b16c6495a000fe4793f3517c6cb1c6e516480f8f Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 10 Jan 2023 15:20:02 +0100 Subject: [PATCH] Docker: Make sure temporary paths don't duplicate Change-Id: I980f2a02c0a521d2d142573d94eb8850c26f0999 Reviewed-by: hjk --- src/plugins/docker/dockerdevice.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp index 5a4b7d61811..712c960ef0e 100644 --- a/src/plugins/docker/dockerdevice.cpp +++ b/src/plugins/docker/dockerdevice.cpp @@ -1105,12 +1105,21 @@ void DockerDeviceFactory::shutdownExistingDevices() bool DockerDevicePrivate::addTemporaryMount(const FilePath &path, const FilePath &containerPath) { - bool alreadyAdded = anyOf(m_temporaryMounts, [containerPath](const TemporaryMountInfo &info) { - return info.containerPath == containerPath; - }); + const bool alreadyAdded = anyOf(m_temporaryMounts, + [containerPath](const TemporaryMountInfo &info) { + return info.containerPath == containerPath; + }); + if (alreadyAdded) 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 expected_str result = isValidMountInfo(newMount);