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:
N2614 2011-11-08 05:43:37 +00:00
parent ad17a25364
commit 5732edc0e7
3 changed files with 28 additions and 27 deletions

View File

@ -743,11 +743,9 @@ void ImportThreadFunc()
{ {
common::SaveDataMover saveDataMover; common::SaveDataMover saveDataMover;
saveDataMover.StartImport(buf, bufSize, &s_ImportProgress); saveDataMover.StartImport(buf, bufSize, &s_ImportProgress);
if(saveDataMover.GetLastResult().IsFailure()) COMMON_LOGGER_RETURN_VOID_SET_BOOL_IF_FAILED(
{ saveDataMover.GetLastResult(), s_IsImportSucceeded
s_IsImportSucceeded = false; );
return;
}
} }
else else
{ {

View File

@ -774,10 +774,7 @@ nn::Result CalculateFileSizeRecursively(std::wstring currentDirectory, s64& file
NN_LOG("%s\n", common::GetCharStr(currentDirectory.c_str())); NN_LOG("%s\n", common::GetCharStr(currentDirectory.c_str()));
result = dir.TryInitialize(currentDirectory.c_str()); result = dir.TryInitialize(currentDirectory.c_str());
if(result.IsFailure()) NN_UTIL_RETURN_IF_FAILED(result);
{
return result;
}
for (;;) for (;;)
{ {

View File

@ -131,21 +131,26 @@ void SaveDataMover::SetupExport()
common::HeapManager contextHeap(sizeof(moveContext)); common::HeapManager contextHeap(sizeof(moveContext));
void* enc; void* enc;
enc = contextHeap.GetAddr(); enc = contextHeap.GetAddr();
if(enc != NULL) if(!enc)
{ {
// AES暗号化する m_Result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_APPLICATION,
nn::crypto::SwAesCtrContext swAesCtrContest; nn::Result::DESCRIPTION_OUT_OF_MEMORY);
return;
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));
} }
// 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. 出力用ディレクトリの作成
// 3.1 システムセーブデータ用ディレクトリ // 3.1 システムセーブデータ用ディレクトリ
common::SdReaderWriter sdWriter;
m_Result = sdWriter.CreateDirectory((::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring( 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::SD_SAVEDATA_ROOT_NAME) + std::wstring(common::SD_SAEVDATA_SYS_NAME)).c_str());
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result); 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( 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::SD_SAVEDATA_ROOT_NAME) + std::wstring(common::SD_SAEVDATA_EXT_NAME)).c_str());
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result); COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
} }
void SaveDataMover::CalculateExportFileSize() void SaveDataMover::CalculateExportFileSize()
@ -361,7 +365,8 @@ void SaveDataMover::ImportSystemSaveData(void* buf, size_t bufSize, u64* progres
// ディレクトリ内を見てセーブデータをインポートする。 // ディレクトリ内を見てセーブデータをインポートする。
while(1) 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) if(numOut == 0)
{ {
break; break;
@ -419,7 +424,8 @@ void SaveDataMover::ImportSharedExtSaveData(void* buf, size_t bufSize, u64* prog
s32 numEntry; s32 numEntry;
while(1) 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) if(numEntry == 0)
{ {
break; break;
@ -525,16 +531,16 @@ nn::Result SaveDataMover::CopyRecursivly(void* buf, size_t bufSize, const char*
if (entry.attributes.isDirectory) if (entry.attributes.isDirectory)
{ {
nn::Result result = nn::fs::TryCreateDirectory(destPath); m_Result = nn::fs::TryCreateDirectory(destPath);
if (result.IsFailure()) if (m_Result.IsFailure())
{ {
if (result.GetDescription() == nn::fs::DESCRIPTION_FAT_ALREADY_EXISTS if (m_Result.GetDescription() == nn::fs::DESCRIPTION_FAT_ALREADY_EXISTS
&& result.GetModule() == nn::Result::MODULE_NN_FS) && m_Result.GetModule() == nn::Result::MODULE_NN_FS)
{ {
} }
else else
{ {
return result; return m_Result;
} }
} }
m_Result = CopyRecursivly(buf, bufSize, srcPath, destPath, progress); m_Result = CopyRecursivly(buf, bufSize, srcPath, destPath, progress);