[ttssh2-commit] [10974] SCP受信時、リモートに存在しないファイルを指定したとき不正な停止するので修正

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2023年 10月 9日 (月) 00:40:06 JST


Revision: 10974
          https://osdn.net/projects/ttssh2/scm/svn/commits/10974
Author:   zmatsuo
Date:     2023-10-09 00:40:06 +0900 (Mon, 09 Oct 2023)
Log Message:
-----------
SCP受信時、リモートに存在しないファイルを指定したとき不正な停止するので修正

- 不正な書き込みアクセス違反
- 変数の初期化を処理の最初に行うよう修正
  - 変数の初期化が途中で行われていた
  ‐ 処理の最初にエラーが出た場合、初期化が行われていない変数を参照していた

MFT r10967

Revision Links:
--------------
    https://osdn.net/projects/ttssh2/scm/svn/commits/10967

Modified Paths:
--------------
    branches/4-stable/ttssh2/ttxssh/ssh.c

-------------- next part --------------
Modified: branches/4-stable/ttssh2/ttxssh/ssh.c
===================================================================
--- branches/4-stable/ttssh2/ttxssh/ssh.c	2023-10-08 15:39:57 UTC (rev 10973)
+++ branches/4-stable/ttssh2/ttxssh/ssh.c	2023-10-08 15:40:06 UTC (rev 10974)
@@ -229,6 +229,7 @@
 		c->scp.localfp = NULL;
 		c->scp.filemtime = 0;
 		c->scp.fileatime = 0;
+		c->scp.pktlist_cursize = 0;
 	}
 	if (type == TYPE_AGENT) {
 		c->agent_msg = buffer_init();
@@ -4131,6 +4132,11 @@
 		notify_fatal_error(pvar, pvar->ts->UIMsg, TRUE);
 		goto error;
 	}
+	if (c->type == TYPE_SCP) {
+		c->scp.pvar = pvar;
+		pvar->recv.suspended = FALSE;
+		pvar->recv.data_finished = FALSE;
+	}
 
 	if (direction == TOREMOTE) {  // copy local to remote
 		fp = fopen(sendfile, "rb");
@@ -8237,8 +8243,6 @@
 		HANDLE thread;
 		unsigned int tid;
 
-		c->scp.pvar = pvar;
-
 		hDlgWnd = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SSHSCP_PROGRESS),
 		                       pvar->cv->HWin, (DLGPROC)ssh_scp_dlg_proc);
 		if (hDlgWnd != NULL) {
@@ -8538,9 +8542,6 @@
 	c->scp.pktlist_head = NULL;
 	c->scp.pktlist_tail = NULL;
 	DeleteCriticalSection(&g_ssh_scp_lock);
-	c->scp.pktlist_cursize = 0;
-	pvar->recv.suspended = FALSE;
-	pvar->recv.data_finished = FALSE;
 }
 
 static BOOL SSH2_scp_fromremote(PTInstVar pvar, Channel_t *c, unsigned char *data, unsigned int buflen)


ttssh2-commit メーリングリストの案内
Back to archive index