mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
Resultのハンドリング修正
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@482 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
ad17a25364
commit
5732edc0e7
@ -743,11 +743,9 @@ void ImportThreadFunc()
|
||||
{
|
||||
common::SaveDataMover saveDataMover;
|
||||
saveDataMover.StartImport(buf, bufSize, &s_ImportProgress);
|
||||
if(saveDataMover.GetLastResult().IsFailure())
|
||||
{
|
||||
s_IsImportSucceeded = false;
|
||||
return;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_VOID_SET_BOOL_IF_FAILED(
|
||||
saveDataMover.GetLastResult(), s_IsImportSucceeded
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -774,10 +774,7 @@ nn::Result CalculateFileSizeRecursively(std::wstring currentDirectory, s64& file
|
||||
|
||||
NN_LOG("%s\n", common::GetCharStr(currentDirectory.c_str()));
|
||||
result = dir.TryInitialize(currentDirectory.c_str());
|
||||
if(result.IsFailure())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
|
||||
@ -131,21 +131,26 @@ void SaveDataMover::SetupExport()
|
||||
common::HeapManager contextHeap(sizeof(moveContext));
|
||||
void* enc;
|
||||
enc = contextHeap.GetAddr();
|
||||
if(enc != NULL)
|
||||
if(!enc)
|
||||
{
|
||||
// AES暗号化する
|
||||
nn::crypto::SwAesCtrContext swAesCtrContest;
|
||||
|
||||
swAesCtrContest.Initialize(common::iv, common::key, sizeof(common::key));
|
||||
swAesCtrContest.Encrypt(enc, &moveContext, sizeof(moveContext));
|
||||
|
||||
common::SdReaderWriter sdWriter;
|
||||
sdWriter.WriteBufWithCmac(common::MOVE_CONTEXT_PATHNAME, enc, sizeof(moveContext));
|
||||
m_Result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_APPLICATION,
|
||||
nn::Result::DESCRIPTION_OUT_OF_MEMORY);
|
||||
return;
|
||||
}
|
||||
|
||||
// AES暗号化する
|
||||
nn::crypto::SwAesCtrContext swAesCtrContest;
|
||||
|
||||
swAesCtrContest.Initialize(common::iv, common::key, sizeof(common::key));
|
||||
m_Result = swAesCtrContest.Encrypt(enc, &moveContext, sizeof(moveContext));
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
|
||||
common::SdReaderWriter sdWriter;
|
||||
m_Result = sdWriter.WriteBufWithCmac(common::MOVE_CONTEXT_PATHNAME, enc, sizeof(moveContext));
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
|
||||
// 3. 出力用ディレクトリの作成
|
||||
// 3.1 システムセーブデータ用ディレクトリ
|
||||
common::SdReaderWriter sdWriter;
|
||||
m_Result = sdWriter.CreateDirectory((::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring(
|
||||
common::SD_SAVEDATA_ROOT_NAME) + std::wstring(common::SD_SAEVDATA_SYS_NAME)).c_str());
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
@ -154,7 +159,6 @@ void SaveDataMover::SetupExport()
|
||||
m_Result = sdWriter.CreateDirectory((::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring(
|
||||
common::SD_SAVEDATA_ROOT_NAME) + std::wstring(common::SD_SAEVDATA_EXT_NAME)).c_str());
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
|
||||
}
|
||||
|
||||
void SaveDataMover::CalculateExportFileSize()
|
||||
@ -361,7 +365,8 @@ void SaveDataMover::ImportSystemSaveData(void* buf, size_t bufSize, u64* progres
|
||||
// ディレクトリ内を見てセーブデータをインポートする。
|
||||
while(1)
|
||||
{
|
||||
root.TryRead(&numOut, &entry, 1);
|
||||
m_Result = root.TryRead(&numOut, &entry, 1);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
if(numOut == 0)
|
||||
{
|
||||
break;
|
||||
@ -419,7 +424,8 @@ void SaveDataMover::ImportSharedExtSaveData(void* buf, size_t bufSize, u64* prog
|
||||
s32 numEntry;
|
||||
while(1)
|
||||
{
|
||||
srcRoot.TryRead(&numEntry, &entry, 1);
|
||||
m_Result = srcRoot.TryRead(&numEntry, &entry, 1);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
if(numEntry == 0)
|
||||
{
|
||||
break;
|
||||
@ -525,16 +531,16 @@ nn::Result SaveDataMover::CopyRecursivly(void* buf, size_t bufSize, const char*
|
||||
|
||||
if (entry.attributes.isDirectory)
|
||||
{
|
||||
nn::Result result = nn::fs::TryCreateDirectory(destPath);
|
||||
if (result.IsFailure())
|
||||
m_Result = nn::fs::TryCreateDirectory(destPath);
|
||||
if (m_Result.IsFailure())
|
||||
{
|
||||
if (result.GetDescription() == nn::fs::DESCRIPTION_FAT_ALREADY_EXISTS
|
||||
&& result.GetModule() == nn::Result::MODULE_NN_FS)
|
||||
if (m_Result.GetDescription() == nn::fs::DESCRIPTION_FAT_ALREADY_EXISTS
|
||||
&& m_Result.GetModule() == nn::Result::MODULE_NN_FS)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
return result;
|
||||
return m_Result;
|
||||
}
|
||||
}
|
||||
m_Result = CopyRecursivly(buf, bufSize, srcPath, destPath, progress);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user