[Ttssh2-commit] [6158] SSH fingerprint が取得できないときの対策を入れた

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2015年 11月 19日 (木) 19:54:12 JST


Revision: 6158
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6158
Author:   maya
Date:     2015-11-19 19:54:12 +0900 (Thu, 19 Nov 2015)
Log Message:
-----------
SSH fingerprint が取得できないときの対策を入れた

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

-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/hosts.c
===================================================================
--- trunk/ttssh2/ttxssh/hosts.c	2015-11-19 08:35:26 UTC (rev 6157)
+++ trunk/ttssh2/ttxssh/hosts.c	2015-11-19 10:54:12 UTC (rev 6158)
@@ -1054,20 +1054,27 @@
 	switch (dgst_alg) {
 	case SSH_DIGEST_MD5:
 		fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_HEX, dgst_alg);
-		SendMessage(GetDlgItem(dlg, IDC_FINGER_PRINT), WM_SETTEXT, 0, (LPARAM)fp);
-		free(fp);
+		if (fp != NULL) {
+			SendMessage(GetDlgItem(dlg, IDC_FINGER_PRINT), WM_SETTEXT, 0, (LPARAM)fp);
+			free(fp);
+		}
 		break;
 	case SSH_DIGEST_SHA256:
-		fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_BASE64, dgst_alg);
-		SendMessage(GetDlgItem(dlg, IDC_FINGER_PRINT), WM_SETTEXT, 0, (LPARAM)fp);
-		free(fp);
+	default:
+		fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_BASE64, SSH_DIGEST_SHA256);
+		if (fp != NULL) {
+			SendMessage(GetDlgItem(dlg, IDC_FINGER_PRINT), WM_SETTEXT, 0, (LPARAM)fp);
+			free(fp);
+		}
 		break;
 	}
 
 	// \x83r\x83W\x83\x85\x83A\x83\x8B\x89\xBBfingerprint\x82\xF0\x95\\x8E\xA6\x82\xB7\x82\xE9
 	fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_RANDOMART, dgst_alg);
-	SendMessage(GetDlgItem(dlg, IDC_FP_RANDOMART), WM_SETTEXT, 0, (LPARAM)fp);
-	free(fp);
+	if (fp != NULL) {
+		SendMessage(GetDlgItem(dlg, IDC_FP_RANDOMART), WM_SETTEXT, 0, (LPARAM)fp);
+		free(fp);
+	}
 }
 
 static void init_hosts_dlg(PTInstVar pvar, HWND dlg)

Modified: trunk/ttssh2/ttxssh/key.c
===================================================================
--- trunk/ttssh2/ttxssh/key.c	2015-11-19 08:35:26 UTC (rev 6157)
+++ trunk/ttssh2/ttxssh/key.c	2015-11-19 10:54:12 UTC (rev 6158)
@@ -2067,13 +2067,16 @@
 				fp = key_fingerprint(ctx->keys[i], SSH_FP_HEX, dgst_alg);
 				break;
 			case SSH_DIGEST_SHA256:
-				fp = key_fingerprint(ctx->keys[i], SSH_FP_BASE64, dgst_alg);
+			default:
+				fp = key_fingerprint(ctx->keys[i], SSH_FP_BASE64, SSH_DIGEST_SHA256);
 				break;
 			}
 			strncat_s(buf, buf_len, get_sshname_from_key(ctx->keys[i]), _TRUNCATE);
 			strncat_s(buf, buf_len, " ", _TRUNCATE);
-			strncat_s(buf, buf_len, fp, _TRUNCATE);
-			free(fp);
+			if (fp != NULL) {
+				strncat_s(buf, buf_len, fp, _TRUNCATE);
+				free(fp);
+			}
 			if (i < ctx->nkeys - 1) {
 				strncat_s(buf, buf_len, "\r\n", _TRUNCATE);
 			}
@@ -2092,13 +2095,16 @@
 				fp = key_fingerprint(ctx->old_keys[i], SSH_FP_HEX, dgst_alg);
 				break;
 			case SSH_DIGEST_SHA256:
-				fp = key_fingerprint(ctx->old_keys[i], SSH_FP_BASE64, dgst_alg);
+			default:
+				fp = key_fingerprint(ctx->old_keys[i], SSH_FP_BASE64, SSH_DIGEST_SHA256);
 				break;
 			}
 			strncat_s(buf, buf_len, get_sshname_from_key(ctx->old_keys[i]), _TRUNCATE);
 			strncat_s(buf, buf_len, " ", _TRUNCATE);
-			strncat_s(buf, buf_len, fp, _TRUNCATE);
-			free(fp);
+			if (fp != NULL) {
+				strncat_s(buf, buf_len, fp, _TRUNCATE);
+				free(fp);
+			}
 			if (i < ctx->nold - 1) {
 				strncat_s(buf, buf_len, "\r\n", _TRUNCATE);
 			}

Modified: trunk/ttssh2/ttxssh/ttxssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ttxssh.c	2015-11-19 08:35:26 UTC (rev 6157)
+++ trunk/ttssh2/ttxssh/ttxssh.c	2015-11-19 10:54:12 UTC (rev 6158)
@@ -2763,10 +2763,13 @@
 			free(fp);
 			break;
 		case SSH_DIGEST_SHA256:
-			fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_BASE64, dgst_alg);
-			strncat_s(buf2, sizeof(buf2), fp, _TRUNCATE);
+		default:
+			fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_BASE64, SSH_DIGEST_SHA256);
+			if (fp != NULL) {
+				strncat_s(buf2, sizeof(buf2), fp, _TRUNCATE);
+				free(fp);
+			}
 			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
-			free(fp);
 			break;
 		}
 



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