From 5702cfc93529a987adf8a73d7a6f264575fb500b Mon Sep 17 00:00:00 2001 From: nmzik Date: Tue, 15 Sep 2026 08:12:07 +0400 Subject: [PATCH] Fix transfer-save mounts to honor the source title and missing data --- src/libs/libSaveData.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/libs/libSaveData.cpp b/src/libs/libSaveData.cpp index 119498807..573374df0 100644 --- a/src/libs/libSaveData.cpp +++ b/src/libs/libSaveData.cpp @@ -583,22 +583,22 @@ int KYTY_SYSV_ABI SaveDataTransferringMount(const SaveDataTransferringMount* mou SaveDataMountResult* mount_result) { PRINT_NAME(); - if (mount == nullptr || mount_result == nullptr || mount->dir_name == nullptr) { + if (mount == nullptr || mount_result == nullptr || mount->title_id == nullptr || + mount->dir_name == nullptr) { return SAVE_DATA_ERROR_PARAMETER; } LOGF("\t user_id = %" PRId32 "\n" "\t title_id = %s\n" "\t dir_name = %s\n", - mount->user_id, mount->title_id != nullptr ? mount->title_id->data : "", - mount->dir_name->data); + mount->user_id, mount->title_id->data, mount->dir_name->data); *mount_result = {}; Common::LockGuard lock(g_mount_mutex); const std::string dir_name = mount->dir_name->data; const std::string mount_dir = - std::string(SAVE_DATA_DIR) + "/" + get_title_id() + "/" + dir_name; + std::string(SAVE_DATA_DIR) + "/" + mount->title_id->data + "/" + dir_name; const int slot = g_mount_slots.FindAvailable(dir_name); if (slot == SaveDataMountSlots::BUSY) { return SAVE_DATA_ERROR_BUSY; @@ -608,10 +608,10 @@ int KYTY_SYSV_ABI SaveDataTransferringMount(const SaveDataTransferringMount* mou } if (!Common::File::IsDirectoryExisting(mount_dir)) { - Common::File::CreateDirectories(mount_dir); + return SAVE_DATA_ERROR_NOT_FOUND; } - return mount_save_data(slot, dir_name, mount_dir, 1, mount_result); + return mount_save_data(slot, dir_name, mount_dir, 0, mount_result); } int KYTY_SYSV_ABI SaveDataUmount2(uint32_t mode, const SaveDataMountPoint* mount_point) {