[Ttssh2-commit] [4495] パケット圧縮を有効にした状態で、SCPファイル送信を行うと、不正なポインタアクセスにより、

svnno****@sourc***** svnno****@sourc*****
2011年 6月 13日 (月) 01:19:27 JST


Revision: 4495
          http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4495
Author:   yutakapon
Date:     2011-06-13 01:19:27 +0900 (Mon, 13 Jun 2011)

Log Message:
-----------
パケット圧縮を有効にした状態で、SCPファイル送信を行うと、不正なポインタアクセスにより、
Tera Term(TTSSH)がApplication faultで落ちる問題を修正した。

buffer_t バッファが内部で realloc() により、バッファ拡張された場合、バッファポインタが
変わることがあるため、再度バッファポインタの取り直しが必要であった。
他にも類似の問題が潜んでいるかもしれないが、水平展開は未。

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


-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/ssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ssh.c	2011-06-12 11:34:56 UTC (rev 4494)
+++ trunk/ttssh2/ttxssh/ssh.c	2011-06-12 16:19:27 UTC (rev 4495)
@@ -1100,6 +1100,8 @@
 		if (msg) {
 			// ƒpƒPƒbƒgˆ³k‚̏ꍇAƒoƒbƒtƒ@‚ðŠg’£‚·‚éB(2011.6.10 yutaka)
 			buffer_append_space(msg, padding + EVP_MAX_MD_SIZE);
+			// realloc()‚³‚ê‚é‚ƁAƒ|ƒCƒ“ƒ^‚ª•Ï‚í‚é‰Â”\«‚ª‚ ‚é‚̂ŁAÄ“xŽæ‚è’¼‚·B
+			data = buffer_ptr(msg);
 		}
 #endif
 		//if (pvar->ssh_state.outbuflen <= 7 + data_length) *(int *)0 = 0;
@@ -7538,7 +7540,7 @@
 	if (pvar->ts_SSH->CompressionLevel == 0) {
 		buflen = 8192*4;
 	} else {
-		buflen = 1024;
+		buflen = 8192*4;
 	}
 	buf = malloc(buflen);
 



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