[ttssh2-commit] [10326] iniファイル読み込み時、NULLを返すことがあったので修正

アーカイブの一覧に戻る
scmno****@osdn***** scmno****@osdn*****
2022年 10月 18日 (火) 22:03:32 JST


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;
 		}


ttssh2-commit メーリングリストの案内
アーカイブの一覧に戻る