diff --git a/trunk/ConsoleDataMigration/common/configLoader.cpp b/trunk/ConsoleDataMigration/common/configLoader.cpp index c32c04a..b262ba9 100644 --- a/trunk/ConsoleDataMigration/common/configLoader.cpp +++ b/trunk/ConsoleDataMigration/common/configLoader.cpp @@ -14,7 +14,7 @@ Result ConfigFileLoader::Initialize(const wchar_t* fileName, void* buffer, const NN_UTIL_RETURN_IF_FAILED(fi.TryGetSize(&fileSize)); // NULL終端ぶん読めるサイズを減らす - if (fileSize > bufferSize - 2) + if (fileSize > bufferSize - sizeof(wchar_t)) { 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); @@ -22,7 +22,7 @@ Result ConfigFileLoader::Initialize(const wchar_t* fileName, void* buffer, const m_Buffer = static_cast(buffer); NN_UTIL_RETURN_IF_FAILED(fi.TryRead(&m_UsedBufferSize, m_Buffer, fileSize)); - + NN_LOG("config size = %d\n", m_UsedBufferSize); return ParseData(); } @@ -52,7 +52,8 @@ Result ConfigFileLoader::ParseData() m_ParamNum = 0; m_ParamName[m_ParamNum] = &(m_Buffer[pos]); - m_ParamValue[m_ParamNum] = L'\0'; + m_ParamValue[m_ParamNum] = L""; + m_Buffer[m_UsedBufferSize / sizeof(wchar_t)] = L'\0'; // NULL終端しておく // ダブルクウォート中なら : も文字として読み取る bool inEscape = false; @@ -112,7 +113,7 @@ Result ConfigFileLoader::ParseData() m_Buffer[pos] = L'\0'; m_ParamName[m_ParamNum] = &(m_Buffer[pos + 1]); - m_ParamValue[m_ParamNum] = L'\0'; + m_ParamValue[m_ParamNum] = L""; } break; @@ -155,14 +156,14 @@ const wchar_t *ConfigFileLoader::ReadAsWChar(const wchar_t *paramName) { NN_LOG("Unknown Parameter Name %ls\n", paramName); } - return (idx < 0) ? L'\0' : m_ParamValue[idx]; + return (idx < 0) ? NULL : m_ParamValue[idx]; } const char *ConfigFileLoader::ReadAsChar(const wchar_t *paramName) { memset(m_ReadCharBuffer, 0, sizeof(m_ReadCharBuffer)); const wchar_t *value = ReadAsWChar(paramName); - if(value == L'\0') + if(value == NULL) { return NULL; }