Fix transfer-save mounts to honor the source title and missing data

This commit is contained in:
nmzik
2026-09-15 08:12:07 +04:00
parent 7b5a33f878
commit 5702cfc935
+6 -6
View File
@@ -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 : "<null>",
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) {