• R/O
  • SSH
  • HTTPS

ttssh2: Commit


Commit MetaInfo

Revision5630 (tree)
Time2014-07-06 15:00:21
Author(del#24082)

Log Message

SCPファイル受信中に、受信処理をキャンセルすると、Tera Termがストールする問題を修正した。

cf.
Termination of SCP file transfer causes application error
http://logmett.com/forum/viewtopic.php?f=8&t=2529

Change Summary

Incremental Difference

--- trunk/ttssh2/ttxssh/ssh.c (revision 5629)
+++ trunk/ttssh2/ttxssh/ssh.c (revision 5630)
@@ -8071,9 +8071,20 @@
80718071 } else if (c->scp.state == SCP_DATA) { // payloadの受信
80728072 unsigned char *newdata = malloc(buflen);
80738073 BOOL ret;
8074+ DWORD texit;
80748075 if (newdata != NULL) {
80758076 memcpy(newdata, data, buflen);
80768077 do {
8078+ // SCPファイル受信中に、ファイル受信を中断すると、無限ループに陥ることがあるため、
8079+ // スレッドが終了しているかどうかを判別する。
8080+ // (2014.7.6 yutaka)
8081+ texit = STILL_ACTIVE;
8082+ GetExitCodeThread(c->scp.thread, &texit);
8083+ if (texit != STILL_ACTIVE) {
8084+ texit = texit;
8085+ break;
8086+ }
8087+
80778088 // スレッドがキューを作っていない場合、メッセージポストが失敗することがあるので、
80788089 // 無限リトライする。MSDNにそうしろと書いてある。
80798090 // (2011.6.15 yutaka)
Show on old repository browser