diff --git a/src/ioslaves/file/file_unix.cpp b/src/ioslaves/file/file_unix.cpp --- a/src/ioslaves/file/file_unix.cpp +++ b/src/ioslaves/file/file_unix.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -43,6 +44,7 @@ #include #include +#include #include "fdreceiver.h" @@ -72,7 +74,8 @@ static const QString socketPath() { - return QStringLiteral("org_kde_kio_file_helper_%1").arg(getpid()); + const QString runtimeDir = QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation); + return QStringLiteral("%1/filehelper%2%3").arg(runtimeDir).arg(KRandom::randomString(6)).arg(getpid()); } bool FileProtocol::privilegeOperationUnitTestMode() diff --git a/src/ioslaves/file/sharefd_p.h b/src/ioslaves/file/sharefd_p.h --- a/src/ioslaves/file/sharefd_p.h +++ b/src/ioslaves/file/sharefd_p.h @@ -55,10 +55,9 @@ sockaddr_un a; memset(&a, 0, sizeof a); a.sun_family = AF_UNIX; - std::string finalPath = "/tmp/" + path; - const size_t pathSize = finalPath.size(); - if (pathSize > 5 && pathSize < sizeof(a.sun_path) - 1) { - memcpy(a.sun_path, finalPath.c_str(), pathSize + 1); + const size_t pathSize = path.size(); + if (pathSize > 0 && pathSize < sizeof(a.sun_path) - 1) { + memcpy(a.sun_path, path.c_str(), pathSize + 1); } return a; }