レビュー反映

wchar_t*にはNULL文字ではなくNULLポインタを代入する
ファイル読み取りバッファをNULL終端するように

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@103 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2011-03-09 07:52:08 +00:00
parent 17cca5847f
commit a424dee1b1

View File

@ -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<wchar_t*>(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;
}