From 2e588f3d8c1e8ff5112e95f9d4a4caadb3aaf1c5 Mon Sep 17 00:00:00 2001 From: N2614 Date: Tue, 15 Feb 2011 00:21:17 +0000 Subject: [PATCH] =?UTF-8?q?NULL=E7=B5=82=E7=AB=AF=E3=81=A7=E3=81=8D?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E3=83=90=E3=83=83=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=B5=E3=82=A4=E3=82=BA-2=E3=82=92=E4=B8=8A=E9=99=90?= =?UTF-8?q?=E3=81=A8=E3=81=99=E3=82=8B=20:=E3=81=8B=E3=82=89=E8=A1=8C?= =?UTF-8?q?=E6=9C=AB=E3=81=BE=E3=81=A7=E3=82=92=E8=A8=AD=E5=AE=9A=E5=80=A4?= =?UTF-8?q?=E3=81=A8=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@53 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../common/configLoader.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/trunk/ConsoleDataMigration/common/configLoader.cpp b/trunk/ConsoleDataMigration/common/configLoader.cpp index 2480ca1..24dfdcf 100644 --- a/trunk/ConsoleDataMigration/common/configLoader.cpp +++ b/trunk/ConsoleDataMigration/common/configLoader.cpp @@ -13,7 +13,8 @@ Result ConfigFileLoader::Initialize(const wchar_t* fileName, void* buffer, const NN_UTIL_RETURN_IF_FAILED(fi.TryInitialize(fileName)); NN_UTIL_RETURN_IF_FAILED(fi.TryGetSize(&fileSize)); - if (fileSize > bufferSize) + // NULL終端ぶん読めるサイズを減らす + if (fileSize > bufferSize - 2) { NN_TLOG_("Too Large File\n"); return Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, nn::Result::DESCRIPTION_TOO_LARGE); @@ -57,6 +58,8 @@ Result ConfigFileLoader::ParseData() bool inEscape = false; // # で行末までコメント bool inComment = false; + // : で行頭から:までがkey、:から行末までがvalue + bool inSettingKeyValue = false; while (pos < m_UsedBufferSize / sizeof(m_Buffer[0])) { @@ -80,6 +83,15 @@ Result ConfigFileLoader::ParseData() { break; } + + if(inSettingKeyValue) + { + break; + } + else + { + inSettingKeyValue = true; + } m_Buffer[pos] = L'\0'; m_ParamValue[m_ParamNum++] = &(m_Buffer[pos + 1]); } @@ -92,6 +104,11 @@ Result ConfigFileLoader::ParseData() { inComment = false; } + if(inSettingKeyValue) + { + inSettingKeyValue = false; + } + m_Buffer[pos] = L'\0'; m_ParamName[m_ParamNum] = &(m_Buffer[pos + 1]); m_ParamValue[m_ParamNum] = L'\0';