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; }