Revision: 9490 https://osdn.net/projects/ttssh2/scm/svn/commits/9490 Author: zmatsuo Date: 2021-10-23 01:10:01 +0900 (Sat, 23 Oct 2021) Log Message: ----------- ttssh の TTXSetCommandLine() を Unicode 化 - 警告対応 - 'INT_PTR' から 'int' への変換です。データが失われる可能性があります。 - warning: variable 'host' set but not used Modified Paths: -------------- trunk/ttssh2/ttxssh/key.c trunk/ttssh2/ttxssh/ttxssh.c -------------- next part -------------- Modified: trunk/ttssh2/ttxssh/key.c =================================================================== --- trunk/ttssh2/ttxssh/key.c 2021-10-22 16:09:52 UTC (rev 9489) +++ trunk/ttssh2/ttxssh/key.c 2021-10-22 16:10:01 UTC (rev 9490) @@ -335,7 +335,7 @@ memset(sigblob, 0, diff); len = modlen; } - + /* sha1 the data */ // nid = (datafellows & SSH_BUG_RSASIGMD5) ? NID_md5 : NID_sha1; nid = NID_sha1; @@ -447,7 +447,7 @@ return ret; } -static int ssh_ed25519_verify(Key *key, unsigned char *signature, unsigned int signaturelen, +static int ssh_ed25519_verify(Key *key, unsigned char *signature, unsigned int signaturelen, unsigned char *data, unsigned int datalen) { buffer_t *b; @@ -972,7 +972,7 @@ return retval; } -#undef FLDBASE +#undef FLDBASE #undef FLDSIZE_Y #undef FLDSIZE_X @@ -1054,7 +1054,7 @@ break; case KEY_ED25519: - /* no need to prealloc */ + /* no need to prealloc */ break; case KEY_UNSPEC: @@ -1159,7 +1159,7 @@ break; case KEY_ED25519: - /* no need to prealloc */ + /* no need to prealloc */ break; case KEY_UNSPEC: @@ -1596,7 +1596,7 @@ } memcpy(*sigptr, buffer_ptr(msg), len); free(sig); - + break; } case KEY_DSA: // DSA @@ -1717,7 +1717,7 @@ case KEY_ED25519: ret = ssh_ed25519_sign(keypair, sigptr, siglen, data, datalen); - if (ret != 0) + if (ret != 0) goto error; break; @@ -1853,7 +1853,7 @@ char *s; BIGNUM *e, *n, *d, *iqmp, *p, *q; BIGNUM *g, *pub_key, *priv_key; - + s = get_ssh2_hostkey_type_name_from_key(key); buffer_put_cstring(b, s); @@ -2025,7 +2025,7 @@ case KEY_ED25519: k->ed25519_pk = buffer_get_string_msg(blob, &pklen); k->ed25519_sk = buffer_get_string_msg(blob, &sklen); - if (pklen != ED25519_PK_SZ) + if (pklen != ED25519_PK_SZ) goto error; if (sklen != ED25519_SK_SZ) goto error; @@ -2040,7 +2040,7 @@ switch (k->type) { case KEY_RSA1: case KEY_RSA: - if (RSA_blinding_on(k->rsa, NULL) != 1) + if (RSA_blinding_on(k->rsa, NULL) != 1) goto error; break; } @@ -2261,7 +2261,7 @@ size_t i; int buf_len; struct hostkeys_update_ctx *ctx; - + ctx = pvar->hostkey_ctx; if (ctx->nkeys > 0) { @@ -2322,7 +2322,8 @@ } } -static UINT_PTR CALLBACK hosts_updatekey_dlg_proc(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) +//typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM); +static INT_PTR CALLBACK hosts_updatekey_dlg_proc(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) { PTInstVar pvar; char buf[1024]; @@ -2341,7 +2342,7 @@ host = pvar->ssh_state.hostname; ctx = pvar->hostkey_ctx; - + GetDlgItemText(dlg, IDC_HOSTKEY_MESSAGE, uimsg, sizeof(uimsg)); UTIL_get_lang_msg("DLG_HOSTKEY_ROTATION_WARNING", pvar, uimsg); _snprintf_s(buf, sizeof(buf), _TRUNCATE, @@ -2408,11 +2409,7 @@ static void update_known_hosts(PTInstVar pvar, struct hostkeys_update_ctx *ctx) { size_t i; - int dlgresult; - char *host; - host = pvar->ssh_state.hostname; - // "/nosecuritywarning"\x82\xAA\x8Ew\x92肳\x82\xEA\x82Ă\xA2\x82\xE9\x8Fꍇ\x81A\x8DX\x90V\x82͈\xEA\x90؍s\x82\xED\x82Ȃ\xA2\x81B if (pvar->nocheck_known_hosts) { logputs(LOG_LEVEL_VERBOSE, "Hostkey was not updated because `/nosecuritywarning' option was specified."); @@ -2421,6 +2418,7 @@ // known_hosts\x83t\x83@\x83C\x83\x8B\x82̍X\x90V\x82\xF0\x8Ds\x82\xA4\x82\xBD\x82߁A\x83\x86\x81[\x83U\x82ɖ₢\x8D\x87\x82킹\x82\xF0\x8Ds\x82\xA4\x81B if (pvar->settings.UpdateHostkeys == SSH_UPDATE_HOSTKEYS_ASK) { + INT_PTR dlgresult; HWND cur_active = GetActiveWindow(); pvar->hostkey_ctx = ctx; Modified: trunk/ttssh2/ttxssh/ttxssh.c =================================================================== --- trunk/ttssh2/ttxssh/ttxssh.c 2021-10-22 16:09:52 UTC (rev 9489) +++ trunk/ttssh2/ttxssh/ttxssh.c 2021-10-22 16:10:01 UTC (rev 9490) @@ -2216,7 +2216,6 @@ HWND hostkeyControl = GetDlgItem(dlg, IDC_SSHHOST_KEY_LIST); HWND macControl = GetDlgItem(dlg, IDC_SSHMAC_LIST); HWND compControl = GetDlgItem(dlg, IDC_SSHCOMP_LIST); - HWND hostkeyRotationControl = GetDlgItem(dlg, IDC_HOSTKEY_ROTATION_STATIC); HWND hostkeyRotationControlList = GetDlgItem(dlg, IDC_HOSTKEY_ROTATION_COMBO); int i; int ch; @@ -4652,17 +4651,16 @@ strncpy_s(dst, dst_len, str, _TRUNCATE); } -static void PASCAL TTXSetCommandLine(PCHAR cmd, int cmdlen, - PGetHNRec rec) +static void PASCAL TTXSetCommandLine(wchar_t *cmd, int cmdlen, PGetHNRec rec) { - char tmpFile[MAX_PATH]; - char tmpPath[1024]; - char *buf; - char *p; + wchar_t tmpFile[MAX_PATH]; + wchar_t tmpPath[1024]; + wchar_t *buf; + wchar_t *p; int i; - GetTempPath(sizeof(tmpPath), tmpPath); - GetTempFileName(tmpPath, "TTX", 0, tmpFile); + GetTempPathW(_countof(tmpPath), tmpPath); + GetTempFileNameW(tmpPath, L"TTX", 0, tmpFile); for (i = 0; cmd[i] != ' ' && cmd[i] != 0; i++) { } @@ -4670,24 +4668,21 @@ if (i < cmdlen) { int ssh_enable = -1; - buf = malloc(cmdlen+1); - strncpy_s(buf, cmdlen, cmd + i, _TRUNCATE); + buf = malloc(sizeof(wchar_t) * (cmdlen+1)); + wcsncpy_s(buf, cmdlen, cmd + i, _TRUNCATE); buf[cmdlen] = 0; cmd[i] = 0; - { - wchar_t *tmpFileW = ToWcharA(tmpFile); - write_ssh_options(pvar, tmpFileW, &pvar->settings, FALSE); - free(tmpFileW); - } + write_ssh_options(pvar, tmpFile, &pvar->settings, FALSE); - strncat_s(cmd, cmdlen, " /ssh-consume=", _TRUNCATE); - strncat_s(cmd, cmdlen, tmpFile, _TRUNCATE); + wcsncat_s(cmd, cmdlen, L" /ssh-consume=", _TRUNCATE); + wcsncat_s(cmd, cmdlen, tmpFile, _TRUNCATE); - strncat_s(cmd, cmdlen, buf, _TRUNCATE); + wcsncat_s(cmd, cmdlen, buf, _TRUNCATE); // \x83R\x83}\x83\x93\x83h\x83\x89\x83C\x83\x93\x82ł̎w\x92\xE8\x82\xF0\x83`\x83F\x83b\x83N - if (p = strstr(buf, " /ssh")) { + p = wcsstr(buf, L" /ssh"); + if (p != NULL) { switch (*(p + 5)) { case '\0': case ' ': @@ -4696,8 +4691,8 @@ ssh_enable = 1; } } - else if (strstr(buf, " /nossh") || - strstr(buf, " /telnet")) { + else if (wcsstr(buf, L" /nossh") || + wcsstr(buf, L" /telnet")) { ssh_enable = 0; } @@ -4705,27 +4700,27 @@ // \x8Ew\x92肳\x82ꂽ\x82Ƃ\xAB\x82́A\x83\x89\x83W\x83I\x83{\x83^\x83\x93\x82\xCC SSH \x82\xA8\x82\xE6\x82\xD1 SSH \x83v\x83\x8D\x83g\x83R\x83\x8B\x83o\x81[\x83W\x83\x87\x83\x93\x82\xF0 // \x93K\x97p\x82\xB7\x82\xE9\x82̂\xF0\x82\xE2\x82߂\xE9 (2007.11.1 maya) if (pvar->hostdlg_Enabled && ssh_enable == -1) { - strncat_s(cmd, cmdlen, " /ssh", _TRUNCATE); + wcsncat_s(cmd, cmdlen, L" /ssh", _TRUNCATE); // add option of SSH protcol version (2004.10.11 yutaka) if (pvar->settings.ssh_protocol_version == 2) { - strncat_s(cmd, cmdlen, " /2", _TRUNCATE); + wcsncat_s(cmd, cmdlen, L" /2", _TRUNCATE); } else { - strncat_s(cmd, cmdlen, " /1", _TRUNCATE); + wcsncat_s(cmd, cmdlen, L" /1", _TRUNCATE); } } // \x83Z\x83b\x83V\x83\x87\x83\x93\x95\xA1\x90\xBB\x82̏ꍇ\x82́A\x8E\xA9\x93\xAE\x83\x8D\x83O\x83C\x83\x93\x97p\x83p\x83\x89\x83\x81\x81[\x83^\x82\xF0\x95t\x82\xAF\x82\xE9\x81B(2005.4.8 yutaka) - if (strstr(buf, "DUPLICATE")) { + if (wcsstr(buf, L"DUPLICATE")) { char mark[MAX_PATH]; - char tmp[MAX_PATH*2]; + wchar_t tmp[MAX_PATH*2]; // \x8E\xA9\x93\xAE\x83\x8D\x83O\x83C\x83\x93\x82̏ꍇ\x82͉\xBA\x8BL\x83t\x83\x89\x83O\x82\xAA0\x82̂\xBD\x82߁A\x95K\x97v\x82ȃR\x83}\x83\x93\x83h\x82\xF0\x95t\x89\xC1\x82\xB7\x82\xE9\x81B if (!pvar->hostdlg_Enabled) { - _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, - " /ssh /%d", pvar->settings.ssh_protocol_version); - strncat_s(cmd, cmdlen, tmp, _TRUNCATE); + _snwprintf_s(tmp, _countof(tmp), _TRUNCATE, + L" /ssh /%d", pvar->settings.ssh_protocol_version); + wcsncat_s(cmd, cmdlen, tmp, _TRUNCATE); } // \x83p\x83X\x83\x8F\x81[\x83h\x82\xF0\x8Ao\x82\xA6\x82Ă\xA2\x82\xE9\x8Fꍇ\x82̂݁A\x83R\x83}\x83\x93\x83h\x83\x89\x83C\x83\x93\x82ɓn\x82\xB7\x81B(2006.8.3 yutaka) @@ -4732,32 +4727,32 @@ if (pvar->settings.remember_password && pvar->auth_state.cur_cred.method == SSH_AUTH_PASSWORD) { dquote_string(pvar->auth_state.cur_cred.password, mark, sizeof(mark)); - _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, - " /auth=password /user=%s /passwd=%s", pvar->auth_state.user, mark); - strncat_s(cmd, cmdlen, tmp, _TRUNCATE); + _snwprintf_s(tmp, _countof(tmp), _TRUNCATE, + L" /auth=password /user=%hs /passwd=%hs", pvar->auth_state.user, mark); + wcsncat_s(cmd, cmdlen, tmp, _TRUNCATE); } else if (pvar->settings.remember_password && pvar->auth_state.cur_cred.method == SSH_AUTH_RSA) { dquote_string(pvar->auth_state.cur_cred.password, mark, sizeof(mark)); - _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, - " /auth=publickey /user=%s /passwd=%s", pvar->auth_state.user, mark); - strncat_s(cmd, cmdlen, tmp, _TRUNCATE); + _snwprintf_s(tmp, _countof(tmp), _TRUNCATE, + L" /auth=publickey /user=%hs /passwd=%hs", pvar->auth_state.user, mark); + wcsncat_s(cmd, cmdlen, tmp, _TRUNCATE); dquote_string(pvar->session_settings.DefaultRSAPrivateKeyFile, mark, sizeof(mark)); - _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, " /keyfile=%s", mark); - strncat_s(cmd, cmdlen, tmp, _TRUNCATE); + _snwprintf_s(tmp, _countof(tmp), _TRUNCATE, L" /keyfile=%hs", mark); + wcsncat_s(cmd, cmdlen, tmp, _TRUNCATE); } else if (pvar->settings.remember_password && pvar->auth_state.cur_cred.method == SSH_AUTH_TIS) { dquote_string(pvar->auth_state.cur_cred.password, mark, sizeof(mark)); - _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, - " /auth=challenge /user=%s /passwd=%s", pvar->auth_state.user, mark); - strncat_s(cmd, cmdlen, tmp, _TRUNCATE); + _snwprintf_s(tmp, _countof(tmp), _TRUNCATE, + L" /auth=challenge /user=%hs /passwd=%hs", pvar->auth_state.user, mark); + wcsncat_s(cmd, cmdlen, tmp, _TRUNCATE); } else if (pvar->auth_state.cur_cred.method == SSH_AUTH_PAGEANT) { - _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, - " /auth=pageant /user=%s", pvar->auth_state.user); - strncat_s(cmd, cmdlen, tmp, _TRUNCATE); + _snwprintf_s(tmp, _countof(tmp), _TRUNCATE, + L" /auth=pageant /user=%hs", pvar->auth_state.user); + wcsncat_s(cmd, cmdlen, tmp, _TRUNCATE); } else { // don't come here