[Ttssh2-commit] [6508] チケット #36709 SSH認証ダイアログのrhostsのローカルユーザ名にゴミが表示される

svnno****@sourc***** svnno****@sourc*****
2016年 10月 20日 (木) 21:51:48 JST


Revision: 6508
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6508
Author:   yutakapon
Date:     2016-10-20 21:51:47 +0900 (Thu, 20 Oct 2016)
Log Message:
-----------
チケット #36709 SSH認証ダイアログのrhostsのローカルユーザ名にゴミが表示される

teraterm.iniのTTSSHのOrder読み込み処理において、メモリ破壊が発生することがある
問題を修正した。

Ticket Links:
------------
    http://sourceforge.jp/projects/ttssh2/tracker/detail/36709

Modified Paths:
--------------
    trunk/ttssh2/ttxssh/ttxssh.c

-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/ttxssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ttxssh.c	2016-10-05 13:24:55 UTC (rev 6507)
+++ trunk/ttssh2/ttxssh/ttxssh.c	2016-10-20 12:51:47 UTC (rev 6508)
@@ -190,10 +190,22 @@
 
 	memset(listed, 0, sizeof(listed));
 	memset(allowed, 0, sizeof(allowed));
+
+	// \x8B\x96\x89‚\xB3\x82\xEA\x82Ă\xA2\x82镶\x8E\x9A\x82̃\x8A\x83X\x83g\x82\xF0\x8D\xEC\x82\xE9\x81B
 	for (i = 0; i < default_strings_len ; i++) {
 		allowed[default_strings[i]] = 1;
 	}
 
+	// \x8Ew\x92肳\x82ꂽ\x95\xB6\x8E\x9A\x97\xF1\x82𑖍\xB8\x82\xB5\x81A\x8B\x96\x89‚\xB3\x82\xEA\x82Ă\xA2\x82Ȃ\xA2\x95\xB6\x8E\x9A\x81A\x8Fd\x95\xA1\x82\xB7\x82镶\x8E\x9A\x82͍폜\x82\xB7\x82\xE9\x81B
+	// 
+	// ex. (i=5 \x82̕\xB6\x8E\x9A\x82\xF0\x8D폜\x82\xB7\x82\xE9)
+	// i=012345
+	//   >:=9<87;A@?B3026(\0)
+	//         i+1
+	//         <------------>
+	//       \x81\xAB
+	//   >:=9<7;A@?B3026(\0)
+	//         
 	for (i = 0; buf[i] != 0; i++) {
 		int num = buf[i] - '0';
 
@@ -206,6 +218,7 @@
 			listed[num] = 1;
 		}
 
+		// disabled line\x82\xAA\x82\xA0\x82\xEA\x82΁A\x88ʒu\x82\xF0\x8Ao\x82\xA6\x82Ă\xA8\x82\xAD\x81B
 		if (num == 0) {
 			k = i;
 		}
@@ -212,11 +225,26 @@
 	}
 
 #if 1
+	// \x8Ew\x92肳\x82\xEA\x82Ă\xA2\x82Ȃ\xA2\x95\xB6\x8E\x9A\x82\xAA\x82\xA0\x82\xEA\x82΁Adisabled line\x82̒\xBC\x91O\x82ɑ}\x93\xFC\x82\xB7\x82\xE9\x81B
+	// 
+	// ex. (Z\x82\xF0\x91}\x93\xFC\x82\xB7\x82\xE9)
+	//                k
+	//   >:=9<87;A@?B3026(\0)
+	//                 k+1
+	//                 <---->
+	//       \x81\xAB       k
+	//   >:=9<87;A@?B30026(\0)
+	//       \x81\xAB        k
+	//   >:=9<87;A@?B3Z026(\0)
+	//       
 	for (j = 0; j < default_strings_len && default_strings[j] != 0; j++) {
 		int num = default_strings[j];
 
 		if (!listed[num] && k >= 0) {
-			memmove(buf + k + 1, buf + k, strlen(buf + k + 1) + 1);
+			int copylen = strlen(buf + k + 1) + 1;
+
+			memmove(buf + k + 1, buf + k, copylen);
+			buf[k + 1 + copylen] = '\0';   // \x8FI\x92[\x82\xF0\x96Y\x82ꂸ\x82ɕt\x82\xAF\x82\xE9\x81B
 			buf[k] = num + '0';
 			k++;
 			i++;
@@ -228,6 +256,8 @@
 	else {
 		j++;
 	}
+
+	// disabled line\x82\xAA\x91\xB6\x8D݂\xB5\x82Ȃ\xA2\x8Fꍇ\x82́A\x82\xBB\x82̂܂ܖ\x96\x94\xF6\x82ɒlj\xC1\x82\xB7\x82\xE9\x81B
 	for (; j < default_strings_len ; j++) {
 		int num = default_strings[j];
 



Ttssh2-commit メーリングリストの案内