Revision: 10326 https://osdn.net/projects/ttssh2/scm/svn/commits/10326 Author: zmatsuo Date: 2022-10-18 22:03:32 +0900 (Tue, 18 Oct 2022) Log Message: ----------- iniファイル読み込み時、NULLを返すことがあったので修正 - hGetPrivateProfileStringW() - ini=NULLかつdef=NULLのとき発生 - 正しくは L"" を返す - r10272 の修正に誤りがあった - GetI18nStrWW() で戻り値をチェックする assert() が誤っていたので修正 ticket #45902 Revision Links: -------------- https://osdn.net/projects/ttssh2/scm/svn/commits/10272 Ticket Links: ------------ https://osdn.net/projects/ttssh2/tracker/detail/45902 Modified Paths: -------------- trunk/teraterm/common/i18n_static.c trunk/teraterm/common/win32helper.cpp -------------- next part -------------- Modified: trunk/teraterm/common/i18n_static.c =================================================================== --- trunk/teraterm/common/i18n_static.c 2022-10-18 13:01:25 UTC (rev 10325) +++ trunk/teraterm/common/i18n_static.c 2022-10-18 13:03:32 UTC (rev 10326) @@ -57,7 +57,7 @@ MultiByteToWideChar(CP_ACP, 0, section, -1, sectionW, _countof(sectionW)); MultiByteToWideChar(CP_ACP, 0, key, -1, keyW, _countof(keyW)); hGetPrivateProfileStringW(sectionW, keyW, def, iniFile, str); - assert(str != NULL); // \x83\x81\x83\x82\x83\x8A\x82\xAA\x82Ȃ\xA2\x8E\x9E NULL \x82\xAA\x95Ԃ\xC1\x82Ă\xAD\x82\xE9 + assert(*str != NULL); // \x83\x81\x83\x82\x83\x8A\x82\xAA\x82Ȃ\xA2\x8E\x9E NULL \x82\xAA\x95Ԃ\xC1\x82Ă\xAD\x82\xE9 size = RestoreNewLineW(*str); return size; } Modified: trunk/teraterm/common/win32helper.cpp =================================================================== --- trunk/teraterm/common/win32helper.cpp 2022-10-18 13:01:25 UTC (rev 10325) +++ trunk/teraterm/common/win32helper.cpp 2022-10-18 13:03:32 UTC (rev 10326) @@ -88,7 +88,8 @@ * * @param section * @param key - * @param def + * @param def \x83f\x83t\x83H\x83\x8B\x83g\x92l + * NULL\x82̂Ƃ\xAB\x82\xCD L"" \x82\xF0\x95Ԃ\xB7 * @param ini ini\x83t\x83@\x83C\x83\x8B\x82̃p\x83X * NULL\x82̂Ƃ\xAB\x82̓t\x83@\x83C\x83\x8B\x8Ew\x92\xE8\x82Ȃ\xB5 * @param str \x95\xB6\x8E\x9A\x97\xF1\x82\xF0\x8Ai\x94[\x82\xB7\x82\xE9\x83o\x83b\x83t\x83@ @@ -96,6 +97,8 @@ * @return \x83G\x83\x89\x81[\x83R\x81[\x83h,0(=NO_ERROR)\x82̂Ƃ\xAB\x83G\x83\x89\x81[\x82Ȃ\xB5 * * \x8E\x9F\x82̏ꍇ str = L"" \x82\xAA\x95Ԃ\xE9 (free()\x82\xB7\x82邱\x82\xC6) + * ini=NULL\x82̏ꍇ + * \x96߂\xE8\x92l NO_ERROR * key\x82ɋݒ肳\x82\xEA\x82Ă\xA2\x82\xE9 'key='\x82ƋL\x8Fq ("="\x82̌\xE3\x82ɉ\xBD\x82\xE0\x8F\x91\x82\xA2\x82Ă\xA2\x82Ȃ\xA2) * \x96߂\xE8\x92l NO_ERROR * key\x82\xAA\x91\xB6\x8D݂\xB9\x82\xB8def=NULL \x8Fꍇ @@ -119,7 +122,7 @@ // Windows10,11 \x82ł̓t\x83@\x83C\x83\x8B\x82\xAA\x82Ȃ\xA2\x82Ƃ\xAB\x82Ɠ\xAF\x82\xB6\x93\xAE\x8D\xEC // Windows95 \x82͎d\x97l\x8AO\x82̓\xAE\x8D\xEC // \x96߂\xE8\x92l=\x83o\x83b\x83t\x83@\x83T\x83C\x83Y+2\x82\xAA\x95Ԃ\xC1\x82Ă\xAD\x82\xE9 - *str = _wcsdup(def); + *str = _wcsdup(def != NULL ? def : L""); // \x88\x{4140AA}NULL\x82̂Ƃ\xAB\x82̓\xAE\x8D\xEC\x82͖\xA2\x92\xE8\x8B` if (*str == NULL) { return ERROR_NOT_ENOUGH_MEMORY; }