From de988f6a76f0ecf712692881ba9ab6e59a6634e4 Mon Sep 17 00:00:00 2001 From: Eladash Date: Mon, 9 May 2022 15:46:42 +0300 Subject: [PATCH] MSELF extractor: Ensure the files' dwellings --- rpcs3/Loader/mself.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rpcs3/Loader/mself.cpp b/rpcs3/Loader/mself.cpp index 1b56c8c9aa..08ea803367 100644 --- a/rpcs3/Loader/mself.cpp +++ b/rpcs3/Loader/mself.cpp @@ -63,6 +63,12 @@ bool extract_mself(const std::string& file, const std::string& extract_to) mself.seek(pos); mself.read(buffer.data(), rec.size); + if (!fs::create_path(fs::get_parent_dir(extract_to + name))) + { + mself_log.error("Error creating directory %s (%s)", fs::get_parent_dir(extract_to + name), fs::g_tls_error); + return false; + } + if (!fs::write_file(extract_to + name, fs::rewrite, buffer)) { mself_log.error("Error creating %s (%s)", extract_to + name, fs::g_tls_error);