[Ttssh2-commit] [5756] YMODEM で受信したファイル情報が最後までファイル名だった場合、ファイル名の終端がおかしくなる問題を修正

svnno****@sourc***** svnno****@sourc*****
2015年 1月 4日 (日) 21:42:38 JST


Revision: 5756
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/5756
Author:   maya
Date:     2015-01-04 21:42:37 +0900 (Sun, 04 Jan 2015)
Log Message:
-----------
YMODEM で受信したファイル情報が最後までファイル名だった場合、ファイル名の終端がおかしくなる問題を修正
  https://sourceforge.jp/ticket/browse.php?group_id=1412&tid=34667 3番目

Modified Paths:
--------------
    trunk/teraterm/ttpfile/ymodem.c

-------------- next part --------------
Modified: trunk/teraterm/ttpfile/ymodem.c
===================================================================
--- trunk/teraterm/ttpfile/ymodem.c	2015-01-03 13:48:21 UTC (rev 5755)
+++ trunk/teraterm/ttpfile/ymodem.c	2015-01-04 12:42:37 UTC (rev 5756)
@@ -541,13 +541,17 @@
 		BYTE *p;
 		char *name, *nameend;
 
-		p = &(yv->PktIn[3]);
+		p = (BYTE *)malloc(yv->DataLen + 1);
+		memset(p, 0, yv->DataLen + 1);
+		memcpy(p, &(yv->PktIn[3]), yv->DataLen);
 		name = p;
 		strncpy_s(&(fv->FullName[fv->DirLen]),
 		          sizeof(fv->FullName) - fv->DirLen, name,
 		          _TRUNCATE);
-		if (!FTCreateFile(fv))
+		if (!FTCreateFile(fv)) {
+			free(p);
 			return FALSE;
+		}
 		nameend = name + 1 + strlen(name);
 		if (*nameend) {
 			ret = sscanf(nameend, "%ld%lo%o", &bytes_total, &modtime, &mode);
@@ -566,6 +570,7 @@
 		// \x8E\x9F\x82̃t\x83@\x83C\x83\x8B\x91\x97\x90M\x82𑣂\xB7\x82\xBD\x82߁A'C'\x82𑗂\xE9\x81B
 		YSendNAK(fv,yv,cv);
 
+		free(p);
 		return TRUE;
 	}
 



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