From 74aa1a112e874b87e94b253fdd9a91b834cd44d1 Mon Sep 17 00:00:00 2001 From: DH Date: Fri, 10 Nov 2023 21:30:43 +0300 Subject: [PATCH] [rpcsx-os] shm: escape subdirectories --- rpcsx-os/iodev/shm.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rpcsx-os/iodev/shm.cpp b/rpcsx-os/iodev/shm.cpp index e5578da7d..5cf905da2 100644 --- a/rpcsx-os/iodev/shm.cpp +++ b/rpcsx-os/iodev/shm.cpp @@ -19,12 +19,16 @@ orbis::ErrorCode ShmDevice::open(orbis::Ref *file, ORBIS_LOG_WARNING("shm_open", path, flags, mode); std::string name = "/rpcsx-"; - if (std::string_view{path}.starts_with("/")) { + if (path[0] == '/') { name += path + 1; } else { name += path; } + for (auto pos = name.find('/', 1); pos != std::string::npos; pos = name.find('/', pos + 1)) { + name[pos] = '$'; + } + auto realFlags = O_RDWR; // TODO std::size_t size = 0;