Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/ttxssh.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2984 by maya, Mon Jul 23 14:23:36 2007 UTC revision 2992 by maya, Wed Aug 8 16:04:09 2007 UTC
# Line 475  static void write_ssh_options(PTInstVar Line 475  static void write_ssh_options(PTInstVar
475                  fileName);                  fileName);
476    
477          // SSH heartbeat time(second) (2004.12.11 yutaka)          // SSH heartbeat time(second) (2004.12.11 yutaka)
478          _snprintf(buf, sizeof(buf), "%d", settings->ssh_heartbeat_overtime);          _snprintf_s(buf, sizeof(buf), _TRUNCATE,
479                    "%d", settings->ssh_heartbeat_overtime);
480          WritePrivateProfileString("TTSSH", "HeartBeat", buf, fileName);          WritePrivateProfileString("TTSSH", "HeartBeat", buf, fileName);
481    
482          // SSH2 keyboard-interactive (2005.1.23 yutaka)          // SSH2 keyboard-interactive (2005.1.23 yutaka)
# Line 521  static unsigned short find_local_port(PT Line 522  static unsigned short find_local_port(PT
522                  hints.ai_flags = AI_PASSIVE;                  hints.ai_flags = AI_PASSIVE;
523                  hints.ai_socktype = SOCK_STREAM;                  hints.ai_socktype = SOCK_STREAM;
524                  port = (unsigned) rand() % 512 + 512;                  port = (unsigned) rand() % 512 + 512;
525                  _snprintf(pname, sizeof(pname), "%d", (int) port);                  _snprintf_s(pname, sizeof(pname), _TRUNCATE, "%d", (int) port);
526                  if (getaddrinfo(NULL, pname, &hints, &res0)) {                  if (getaddrinfo(NULL, pname, &hints, &res0)) {
527                          return 0;                          return 0;
528                          /* NOT REACHED */                          /* NOT REACHED */
# Line 742  void notify_closed_connection(PTInstVar Line 743  void notify_closed_connection(PTInstVar
743  static void add_err_msg(PTInstVar pvar, char FAR * msg)  static void add_err_msg(PTInstVar pvar, char FAR * msg)
744  {  {
745          if (pvar->err_msg != NULL) {          if (pvar->err_msg != NULL) {
746                  char FAR *buf =                  int buf_len = strlen(pvar->err_msg) + 3 + strlen(msg);
747                          (char FAR *) malloc(strlen(pvar->err_msg) + 3 + strlen(msg));                  char FAR *buf = (char FAR *) malloc(buf_len);
748    
749                  strcpy(buf, pvar->err_msg);                  strncpy_s(buf, buf_len, pvar->err_msg, _TRUNCATE);
750                  strcat(buf, "\n\n");                  strncat_s(buf, buf_len, "\n\n", _TRUNCATE);
751                  strcat(buf, msg);                  strncat_s(buf, buf_len, msg, _TRUNCATE);
752                  free(pvar->err_msg);                  free(pvar->err_msg);
753                  pvar->err_msg = buf;                  pvar->err_msg = buf;
754          } else {          } else {
# Line 762  void notify_nonfatal_error(PTInstVar pva Line 763  void notify_nonfatal_error(PTInstVar pva
763                  // メッセージボックスを出現させる。(2006.6.11 yutaka)                  // メッセージボックスを出現させる。(2006.6.11 yutaka)
764                  if (pvar->NotificationWindow == NULL) {                  if (pvar->NotificationWindow == NULL) {
765  #ifndef NO_I18N  #ifndef NO_I18N
766                          strcpy(pvar->ts->UIMsg, "Tera Term: not fatal error");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Tera Term: not fatal error", _TRUNCATE);
767                          UTIL_get_lang_msg("MSG_ERROR_NONFAITAL", pvar);                          UTIL_get_lang_msg("MSG_ERROR_NONFAITAL", pvar);
768                          MessageBox(NULL, msg, pvar->ts->UIMsg, MB_OK|MB_ICONINFORMATION);                          MessageBox(NULL, msg, pvar->ts->UIMsg, MB_OK|MB_ICONINFORMATION);
769  #else  #else
# Line 835  static void PASCAL FAR TTXOpenTCP(TTXSoc Line 836  static void PASCAL FAR TTXOpenTCP(TTXSoc
836    
837                  time(&long_time);                  time(&long_time);
838                  newtime = localtime(&long_time);                  newtime = localtime(&long_time);
839                  strcat(buf, asctime(newtime));                  strncat_s(buf, sizeof(buf), asctime(newtime), _TRUNCATE);
                 buf[strlen(buf) - 1] = 0;  
840                  notify_verbose_message(pvar, buf, LOG_LEVEL_VERBOSE);                  notify_verbose_message(pvar, buf, LOG_LEVEL_VERBOSE);
841    
842                  FWDUI_load_settings(pvar);                  FWDUI_load_settings(pvar);
# Line 982  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 982  static BOOL CALLBACK TTXHostDlg(HWND dlg
982                  if (GetHNRec->PortType == IdFile)                  if (GetHNRec->PortType == IdFile)
983                          GetHNRec->PortType = IdTCPIP;                          GetHNRec->PortType = IdTCPIP;
984    
985                  strcpy(EntName, "Host");                  strncpy_s(EntName, sizeof(EntName), "Host", _TRUNCATE);
986    
987                  i = 1;                  i = 1;
988                  do {                  do {
989                          sprintf(&EntName[4], "%d", i);                          _snprintf_s(&EntName[4], sizeof(EntName)-4, _TRUNCATE, "%d", i);
990                          GetPrivateProfileString("Hosts", EntName, "",                          GetPrivateProfileString("Hosts", EntName, "",
991                                                                          TempHost, sizeof(TempHost),                                                                          TempHost, sizeof(TempHost),
992                                                                          GetHNRec->SetupFN);                                                                          GetHNRec->SetupFN);
# Line 1040  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 1040  static BOOL CALLBACK TTXHostDlg(HWND dlg
1040    
1041                  j = 0;                  j = 0;
1042                  w = 1;                  w = 1;
1043                  strcpy(EntName, "COM");                  strncpy_s(EntName, sizeof(EntName), "COM", _TRUNCATE);
1044                  if ((comports=DetectComPorts(ComPortTable, GetHNRec->MaxComPort)) >= 0) {                  if ((comports=DetectComPorts(ComPortTable, GetHNRec->MaxComPort)) >= 0) {
1045                          for (i=0; i<comports; i++) {                          for (i=0; i<comports; i++) {
1046                                  sprintf(&EntName[3], "%d", ComPortTable[i]);                                  _snprintf_s(&EntName[3], sizeof(EntName)-3, _TRUNCATE, "%d", ComPortTable[i]);
1047                                  SendDlgItemMessage(dlg, IDC_HOSTCOM, CB_ADDSTRING,                                  SendDlgItemMessage(dlg, IDC_HOSTCOM, CB_ADDSTRING,
1048                                                                     0, (LPARAM)EntName);                                                                     0, (LPARAM)EntName);
1049                                  j++;                                  j++;
# Line 1053  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 1053  static BOOL CALLBACK TTXHostDlg(HWND dlg
1053    
1054                  } else {                  } else {
1055                          for (i = 1; i <= GetHNRec->MaxComPort; i++) {                          for (i = 1; i <= GetHNRec->MaxComPort; i++) {
1056                                  sprintf(&EntName[3], "%d", i);                                  _snprintf_s(&EntName[3], sizeof(EntName)-3, _TRUNCATE, "%d", i);
1057                                  SendDlgItemMessage(dlg, IDC_HOSTCOM, CB_ADDSTRING,                                  SendDlgItemMessage(dlg, IDC_HOSTCOM, CB_ADDSTRING,
1058                                                                     0, (LPARAM) EntName);                                                                     0, (LPARAM) EntName);
1059                                  j++;                                  j++;
# Line 1153  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 1153  static BOOL CALLBACK TTXHostDlg(HWND dlg
1153                                                  GetHNRec->TCPPort = i;                                                  GetHNRec->TCPPort = i;
1154                                          } else {                                          } else {
1155  #ifndef NO_I18N  #ifndef NO_I18N
1156                                                  strcpy(pvar->ts->UIMsg, "The TCP port must be a number.");                                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "The TCP port must be a number.", _TRUNCATE);
1157                                                  UTIL_get_lang_msg("MSG_TCPPORT_NAN_ERROR", pvar);                                                  UTIL_get_lang_msg("MSG_TCPPORT_NAN_ERROR", pvar);
1158                                                  MessageBox(dlg, pvar->ts->UIMsg,                                                  MessageBox(dlg, pvar->ts->UIMsg,
1159                                                                     "Teraterm", MB_OK | MB_ICONEXCLAMATION);                                                                     "Teraterm", MB_OK | MB_ICONEXCLAMATION);
# Line 1390  static int parse_option(PTInstVar pvar, Line 1390  static int parse_option(PTInstVar pvar,
1390                                             || MATCH_STR(option + 4, "-R") == 0                                             || MATCH_STR(option + 4, "-R") == 0
1391                                             || _stricmp(option + 4, "-X") == 0) {                                             || _stricmp(option + 4, "-X") == 0) {
1392                                  if (pvar->settings.DefaultForwarding[0] == 0) {                                  if (pvar->settings.DefaultForwarding[0] == 0) {
1393                                          strcpy(pvar->settings.DefaultForwarding, option + 5);                                          strncpy_s(pvar->settings.DefaultForwarding,
1394                                                    sizeof(pvar->settings.DefaultForwarding),
1395                                                    option + 5, _TRUNCATE);
1396                                  } else {                                  } else {
1397                                          strcat(pvar->settings.DefaultForwarding, ";");                                          strncat_s(pvar->settings.DefaultForwarding,
1398                                          strcat(pvar->settings.DefaultForwarding, option + 5);                                                  sizeof(pvar->settings.DefaultForwarding),
1399                                                    ";", _TRUNCATE);
1400                                            strncat_s(pvar->settings.DefaultForwarding,
1401                                                    sizeof(pvar->settings.DefaultForwarding),
1402                                                    option + 5, _TRUNCATE);
1403                                  }                                  }
1404                          } else if (MATCH_STR(option + 4, "-f=") == 0) {                          } else if (MATCH_STR(option + 4, "-f=") == 0) {
1405                                  read_ssh_options_from_user_file(pvar, option + 7);                                  read_ssh_options_from_user_file(pvar, option + 7);
# Line 1417  static int parse_option(PTInstVar pvar, Line 1423  static int parse_option(PTInstVar pvar,
1423                                  char buf[1024];                                  char buf[1024];
1424    
1425  #ifndef NO_I18N  #ifndef NO_I18N
1426                                  strcpy(pvar->ts->UIMsg, "Unrecognized command-line option: %s");                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unrecognized command-line option: %s", _TRUNCATE);
1427                                  UTIL_get_lang_msg("MSG_UNKNOWN_OPTION_ERROR", pvar);                                  UTIL_get_lang_msg("MSG_UNKNOWN_OPTION_ERROR", pvar);
1428                                  _snprintf(buf, sizeof(buf), pvar->ts->UIMsg, option);                                  _snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, option);
1429  #else  #else
1430                                  _snprintf(buf, sizeof(buf),                                  _snprintf(buf, sizeof(buf),
1431                                                    "Unrecognized command-line option: %s", option);                                                    "Unrecognized command-line option: %s", option);
# Line 1544  static void FAR PASCAL TTXParseParam(PCH Line 1550  static void FAR PASCAL TTXParseParam(PCH
1550                                  param[i] = 0;                                  param[i] = 0;
1551                                  Equal = strchr(option, '=');                                  Equal = strchr(option, '=');
1552                                  if (inFileParam && Equal != NULL && *(Equal + 1) == '"') {                                  if (inFileParam && Equal != NULL && *(Equal + 1) == '"') {
1553                                            int buf_len = strlen(option) * sizeof(char);
1554                                          char *buf = (char *)calloc(strlen(option), sizeof(char));                                          char *buf = (char *)calloc(strlen(option), sizeof(char));
1555                                          strncat(buf, option, Equal - option + 1);                                          char c = option[Equal - option + 1];
1556                                          strcat(buf, Equal + 2);                                          option[Equal - option + 1] = 0;
1557                                            strncat_s(buf, buf_len, option, _TRUNCATE);
1558                                            option[Equal - option + 1] = c;
1559                                            strncat_s(buf, buf_len, Equal + 2, _TRUNCATE);
1560                                          if (parse_option                                          if (parse_option
1561                                                  (pvar, *buf == '"' ? buf + 1 : buf)) {                                                  (pvar, *buf == '"' ? buf + 1 : buf)) {
1562                                                  memset(option, ' ', i + 1 - (option - param));                                                  memset(option, ' ', i + 1 - (option - param));
# Line 1597  static void FAR PASCAL TTXParseParam(PCH Line 1607  static void FAR PASCAL TTXParseParam(PCH
1607          if (option != NULL) {          if (option != NULL) {
1608                  PCHAR Equal = strchr(option, '=');                  PCHAR Equal = strchr(option, '=');
1609                  if (inFileParam && Equal != NULL && *(Equal + 1) == '"') {                  if (inFileParam && Equal != NULL && *(Equal + 1) == '"') {
1610                            int buf_len = strlen(option) * sizeof(char);
1611                          char *buf = (char *)calloc(strlen(option), sizeof(char));                          char *buf = (char *)calloc(strlen(option), sizeof(char));
1612                          strncat(buf, option, Equal - option + 1);                          char c = option[Equal - option + 1];
1613                          strcat(buf, Equal + 2);                          option[Equal - option + 1] = 0;
1614                            strncat_s(buf, buf_len, option, _TRUNCATE);
1615                            option[Equal - option + 1] = c;
1616                            strncat_s(buf, buf_len, Equal + 2, _TRUNCATE);
1617                          if (parse_option                          if (parse_option
1618                                  (pvar, *buf == '"' ? buf + 1 : buf)) {                                  (pvar, *buf == '"' ? buf + 1 : buf)) {
1619                                  memset(option, ' ', i + 1 - (option - param));                                  memset(option, ' ', i + 1 - (option - param));
# Line 1663  static void PASCAL FAR TTXModifyMenu(HME Line 1677  static void PASCAL FAR TTXModifyMenu(HME
1677    
1678          /* inserts before ID_HELP_ABOUT */          /* inserts before ID_HELP_ABOUT */
1679  #ifndef NO_I18N  #ifndef NO_I18N
1680          strcpy(pvar->ts->UIMsg, "About &TTSSH...");          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "About &TTSSH...", _TRUNCATE);
1681          UTIL_get_lang_msg("MENU_ABOUT", pvar);          UTIL_get_lang_msg("MENU_ABOUT", pvar);
1682          insertMenuBeforeItem(menu, 50990, MF_ENABLED, ID_ABOUTMENU, pvar->ts->UIMsg);          insertMenuBeforeItem(menu, 50990, MF_ENABLED, ID_ABOUTMENU, pvar->ts->UIMsg);
1683  #else  #else
# Line 1673  static void PASCAL FAR TTXModifyMenu(HME Line 1687  static void PASCAL FAR TTXModifyMenu(HME
1687    
1688          /* inserts before ID_SETUP_TCPIP */          /* inserts before ID_SETUP_TCPIP */
1689  #ifndef NO_I18N  #ifndef NO_I18N
1690          strcpy(pvar->ts->UIMsg, "SS&H...");          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SS&H...", _TRUNCATE);
1691          UTIL_get_lang_msg("MENU_SSH", pvar);          UTIL_get_lang_msg("MENU_SSH", pvar);
1692          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHSETUPMENU, pvar->ts->UIMsg);          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHSETUPMENU, pvar->ts->UIMsg);
1693  #else  #else
# Line 1682  static void PASCAL FAR TTXModifyMenu(HME Line 1696  static void PASCAL FAR TTXModifyMenu(HME
1696  #endif  #endif
1697          /* inserts before ID_SETUP_TCPIP */          /* inserts before ID_SETUP_TCPIP */
1698  #ifndef NO_I18N  #ifndef NO_I18N
1699          strcpy(pvar->ts->UIMsg, "SSH &Authentication...");          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH &Authentication...", _TRUNCATE);
1700          UTIL_get_lang_msg("MENU_SSH_AUTH", pvar);          UTIL_get_lang_msg("MENU_SSH_AUTH", pvar);
1701          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHAUTHSETUPMENU, pvar->ts->UIMsg);          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHAUTHSETUPMENU, pvar->ts->UIMsg);
1702  #else  #else
# Line 1691  static void PASCAL FAR TTXModifyMenu(HME Line 1705  static void PASCAL FAR TTXModifyMenu(HME
1705  #endif  #endif
1706          /* inserts before ID_SETUP_TCPIP */          /* inserts before ID_SETUP_TCPIP */
1707  #ifndef NO_I18N  #ifndef NO_I18N
1708          strcpy(pvar->ts->UIMsg, "SSH F&orwarding...");          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH F&orwarding...", _TRUNCATE);
1709          UTIL_get_lang_msg("MENU_SSH_FORWARD", pvar);          UTIL_get_lang_msg("MENU_SSH_FORWARD", pvar);
1710          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHFWDSETUPMENU, pvar->ts->UIMsg);          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHFWDSETUPMENU, pvar->ts->UIMsg);
1711  #else  #else
# Line 1700  static void PASCAL FAR TTXModifyMenu(HME Line 1714  static void PASCAL FAR TTXModifyMenu(HME
1714  #endif  #endif
1715    
1716  #ifndef NO_I18N  #ifndef NO_I18N
1717          strcpy(pvar->ts->UIMsg, "SSH KeyGe&nerator...");          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH KeyGe&nerator...", _TRUNCATE);
1718          UTIL_get_lang_msg("MENU_SSH_KEYGEN", pvar);          UTIL_get_lang_msg("MENU_SSH_KEYGEN", pvar);
1719          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHKEYGENMENU, pvar->ts->UIMsg);          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHKEYGENMENU, pvar->ts->UIMsg);
1720  #else  #else
# Line 1752  void get_file_version(char *exefile, int Line 1766  void get_file_version(char *exefile, int
1766                  goto error;                  goto error;
1767    
1768          for (i = 0 ; i < (int)(unLen / sizeof(LANGANDCODEPAGE)) ; i++) {          for (i = 0 ; i < (int)(unLen / sizeof(LANGANDCODEPAGE)) ; i++) {
1769                  _snprintf(fmt, sizeof(fmt), "\\StringFileInfo\\%04x%04x\\FileVersion",                  _snprintf_s(fmt, sizeof(fmt), _TRUNCATE,
1770                            "\\StringFileInfo\\%04x%04x\\FileVersion",
1771                          lplgcode[i].wLanguage, lplgcode[i].wCodePage);                          lplgcode[i].wLanguage, lplgcode[i].wCodePage);
1772                  VerQueryValue(buf, fmt, &pbuf, &unLen);                  VerQueryValue(buf, fmt, &pbuf, &unLen);
1773                  if (unLen > 0) { // get success                  if (unLen > 0) { // get success
# Line 1794  static void init_about_dlg(PTInstVar pva Line 1809  static void init_about_dlg(PTInstVar pva
1809                    
1810          // TTSSHのバージョンを設定する (2005.2.28 yutaka)          // TTSSHのバージョンを設定する (2005.2.28 yutaka)
1811          get_file_version("ttxssh.dll", &a, &b, &c, &d);          get_file_version("ttxssh.dll", &a, &b, &c, &d);
1812          _snprintf(buf, sizeof(buf), "TTSSH\r\nTeraterm Secure Shell extension, %d.%d", a, b);          _snprintf_s(buf, sizeof(buf), _TRUNCATE,
1813                    "TTSSH\r\nTeraterm Secure Shell extension, %d.%d", a, b);
1814          SendMessage(GetDlgItem(dlg, IDC_TTSSH_VERSION), WM_SETTEXT, 0, (LPARAM)buf);          SendMessage(GetDlgItem(dlg, IDC_TTSSH_VERSION), WM_SETTEXT, 0, (LPARAM)buf);
1815    
1816          // OpenSSLのバージョンを設定する (2005.1.24 yutaka)          // OpenSSLのバージョンを設定する (2005.1.24 yutaka)
# Line 1807  static void init_about_dlg(PTInstVar pva Line 1823  static void init_about_dlg(PTInstVar pva
1823    
1824          // zlibのバージョンを設定する (2005.5.11 yutaka)          // zlibのバージョンを設定する (2005.5.11 yutaka)
1825  #ifdef ZLIB_VERSION  #ifdef ZLIB_VERSION
1826          _snprintf(buf, sizeof(buf), "ZLib %s", ZLIB_VERSION);          _snprintf_s(buf, sizeof(buf), _TRUNCATE, "ZLib %s", ZLIB_VERSION);
1827  #else  #else
1828          _snprintf(buf, sizeof(buf), "ZLib Unknown");          _snprintf(buf, sizeof(buf), "ZLib Unknown");
1829  #endif  #endif
# Line 1819  static void init_about_dlg(PTInstVar pva Line 1835  static void init_about_dlg(PTInstVar pva
1835                  if (SSHv1(pvar)) {                  if (SSHv1(pvar)) {
1836                          SSH_get_server_ID_info(pvar, buf, sizeof(buf));                          SSH_get_server_ID_info(pvar, buf, sizeof(buf));
1837  #ifndef NO_I18N  #ifndef NO_I18N
1838                          strcpy(pvar->ts->UIMsg, "Server ID: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Server ID: ", _TRUNCATE);
1839                          UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar);
1840                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1841  #else  #else
# Line 1827  static void init_about_dlg(PTInstVar pva Line 1843  static void init_about_dlg(PTInstVar pva
1843  #endif  #endif
1844                          SSH_get_protocol_version_info(pvar, buf, sizeof(buf));                          SSH_get_protocol_version_info(pvar, buf, sizeof(buf));
1845  #ifndef NO_I18N  #ifndef NO_I18N
1846                          strcpy(pvar->ts->UIMsg, "Using protocol: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Using protocol: ", _TRUNCATE);
1847                          UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar);
1848                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1849  #else  #else
# Line 1835  static void init_about_dlg(PTInstVar pva Line 1851  static void init_about_dlg(PTInstVar pva
1851  #endif  #endif
1852                          CRYPT_get_cipher_info(pvar, buf, sizeof(buf));                          CRYPT_get_cipher_info(pvar, buf, sizeof(buf));
1853  #ifndef NO_I18N  #ifndef NO_I18N
1854                          strcpy(pvar->ts->UIMsg, "Encryption: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Encryption: ", _TRUNCATE);
1855                          UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar);
1856                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1857  #else  #else
# Line 1843  static void init_about_dlg(PTInstVar pva Line 1859  static void init_about_dlg(PTInstVar pva
1859  #endif  #endif
1860                          CRYPT_get_server_key_info(pvar, buf, sizeof(buf));                          CRYPT_get_server_key_info(pvar, buf, sizeof(buf));
1861  #ifndef NO_I18N  #ifndef NO_I18N
1862                          strcpy(pvar->ts->UIMsg, "Server keys: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Server keys: ", _TRUNCATE);
1863                          UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar);
1864                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1865  #else  #else
# Line 1851  static void init_about_dlg(PTInstVar pva Line 1867  static void init_about_dlg(PTInstVar pva
1867  #endif  #endif
1868                          AUTH_get_auth_info(pvar, buf, sizeof(buf));                          AUTH_get_auth_info(pvar, buf, sizeof(buf));
1869  #ifndef NO_I18N  #ifndef NO_I18N
1870                          strcpy(pvar->ts->UIMsg, "Authentication: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Authentication: ", _TRUNCATE);
1871                          UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar);
1872                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1873  #else  #else
# Line 1859  static void init_about_dlg(PTInstVar pva Line 1875  static void init_about_dlg(PTInstVar pva
1875  #endif  #endif
1876                          SSH_get_compression_info(pvar, buf, sizeof(buf));                          SSH_get_compression_info(pvar, buf, sizeof(buf));
1877  #ifndef NO_I18N  #ifndef NO_I18N
1878                          strcpy(pvar->ts->UIMsg, "Compression: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Compression: ", _TRUNCATE);
1879                          UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar);
1880                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1881  #else  #else
# Line 1869  static void init_about_dlg(PTInstVar pva Line 1885  static void init_about_dlg(PTInstVar pva
1885                  } else { // SSH2                  } else { // SSH2
1886                          SSH_get_server_ID_info(pvar, buf, sizeof(buf));                          SSH_get_server_ID_info(pvar, buf, sizeof(buf));
1887  #ifndef NO_I18N  #ifndef NO_I18N
1888                          strcpy(pvar->ts->UIMsg, "Server ID: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Server ID: ", _TRUNCATE);
1889                          UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar);
1890                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1891  #else  #else
# Line 1877  static void init_about_dlg(PTInstVar pva Line 1893  static void init_about_dlg(PTInstVar pva
1893  #endif  #endif
1894    
1895  #ifndef NO_I18N  #ifndef NO_I18N
1896                          strcpy(pvar->ts->UIMsg, "Client ID: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Client ID: ", _TRUNCATE);
1897                          UTIL_get_lang_msg("DLG_ABOUT_CLIENTID", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_CLIENTID", pvar);
1898                          append_about_text(dlg, pvar->ts->UIMsg, pvar->client_version_string);                          append_about_text(dlg, pvar->ts->UIMsg, pvar->client_version_string);
1899  #else  #else
# Line 1886  static void init_about_dlg(PTInstVar pva Line 1902  static void init_about_dlg(PTInstVar pva
1902    
1903                          SSH_get_protocol_version_info(pvar, buf, sizeof(buf));                          SSH_get_protocol_version_info(pvar, buf, sizeof(buf));
1904  #ifndef NO_I18N  #ifndef NO_I18N
1905                          strcpy(pvar->ts->UIMsg, "Using protocol: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Using protocol: ", _TRUNCATE);
1906                          UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar);
1907                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1908  #else  #else
# Line 1894  static void init_about_dlg(PTInstVar pva Line 1910  static void init_about_dlg(PTInstVar pva
1910  #endif  #endif
1911    
1912                          if (pvar->kex_type == KEX_DH_GRP1_SHA1) {                          if (pvar->kex_type == KEX_DH_GRP1_SHA1) {
1913                                  strcpy(buf, KEX_DH1);                                  strncpy_s(buf, sizeof(buf), KEX_DH1, _TRUNCATE);
1914                          } else if (pvar->kex_type == KEX_DH_GRP14_SHA1) {                          } else if (pvar->kex_type == KEX_DH_GRP14_SHA1) {
1915                                  strcpy(buf, KEX_DH14);                                  strncpy_s(buf, sizeof(buf), KEX_DH14, _TRUNCATE);
1916                          } else {                          } else {
1917                                  strcpy(buf, KEX_DHGEX);                                  strncpy_s(buf, sizeof(buf), KEX_DHGEX, _TRUNCATE);
1918                          }                          }
1919                          append_about_text(dlg, "KEX: ", buf);                          append_about_text(dlg, "KEX: ", buf);
1920    
1921                          if (pvar->hostkey_type == KEY_DSA) {                          if (pvar->hostkey_type == KEY_DSA) {
1922                                  strcpy(buf, "ssh-dss");                                  strncpy_s(buf, sizeof(buf), "ssh-dss", _TRUNCATE);
1923                          } else {                          } else {
1924                                  strcpy(buf, "ssh-rsa");                                  strncpy_s(buf, sizeof(buf), "ssh-rsa", _TRUNCATE);
1925                          }                          }
1926  #ifndef NO_I18N  #ifndef NO_I18N
1927                          strcpy(pvar->ts->UIMsg, "Host Key: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Host Key: ", _TRUNCATE);
1928                          UTIL_get_lang_msg("DLG_ABOUT_HOSTKEY", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_HOSTKEY", pvar);
1929                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1930  #else  #else
# Line 1918  static void init_about_dlg(PTInstVar pva Line 1934  static void init_about_dlg(PTInstVar pva
1934                          // add HMAC algorithm (2004.12.17 yutaka)                          // add HMAC algorithm (2004.12.17 yutaka)
1935                          buf[0] = '\0';                          buf[0] = '\0';
1936                          if (pvar->ctos_hmac == HMAC_SHA1) {                          if (pvar->ctos_hmac == HMAC_SHA1) {
1937                                  strcat(buf, "hmac-sha1");                                  strncat_s(buf, sizeof(buf), "hmac-sha1", _TRUNCATE);
1938                          } else if (pvar->ctos_hmac == HMAC_MD5) {                          } else if (pvar->ctos_hmac == HMAC_MD5) {
1939                                  strcat(buf, "hmac-md5");                                  strncat_s(buf, sizeof(buf), "hmac-md5", _TRUNCATE);
1940                          }                          }
1941  #ifndef NO_I18N  #ifndef NO_I18N
1942                          strcpy(pvar->ts->UIMsg, " to server, ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), " to server, ", _TRUNCATE);
1943                          UTIL_get_lang_msg("DLG_ABOUT_TOSERVER", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_TOSERVER", pvar);
1944                          strcat(buf, pvar->ts->UIMsg);                          strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE);
1945  #else  #else
1946                          strcat(buf, " to server, ");                          strcat(buf, " to server, ");
1947  #endif  #endif
1948                          if (pvar->stoc_hmac == HMAC_SHA1) {                          if (pvar->stoc_hmac == HMAC_SHA1) {
1949                                  strcat(buf, "hmac-sha1");                                  strncat_s(buf, sizeof(buf), "hmac-sha1", _TRUNCATE);
1950                          } else if (pvar->stoc_hmac == HMAC_MD5) {                          } else if (pvar->stoc_hmac == HMAC_MD5) {
1951                                  strcat(buf, "hmac-md5");                                  strncat_s(buf, sizeof(buf), "hmac-md5", _TRUNCATE);
1952                          }                          }
1953  #ifndef NO_I18N  #ifndef NO_I18N
1954                          strcpy(pvar->ts->UIMsg, " from server");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), " from server", _TRUNCATE);
1955                          UTIL_get_lang_msg("DLG_ABOUT_FROMSERVER", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_FROMSERVER", pvar);
1956                          strcat(buf, pvar->ts->UIMsg);                          strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE);
1957  #else  #else
1958                          strcat(buf, " from server");                          strcat(buf, " from server");
1959  #endif  #endif
# Line 1945  static void init_about_dlg(PTInstVar pva Line 1961  static void init_about_dlg(PTInstVar pva
1961    
1962                          CRYPT_get_cipher_info(pvar, buf, sizeof(buf));                          CRYPT_get_cipher_info(pvar, buf, sizeof(buf));
1963  #ifndef NO_I18N  #ifndef NO_I18N
1964                          strcpy(pvar->ts->UIMsg, "Encryption: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Encryption: ", _TRUNCATE);
1965                          UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar);
1966                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1967  #else  #else
# Line 1953  static void init_about_dlg(PTInstVar pva Line 1969  static void init_about_dlg(PTInstVar pva
1969  #endif  #endif
1970                          CRYPT_get_server_key_info(pvar, buf, sizeof(buf));                          CRYPT_get_server_key_info(pvar, buf, sizeof(buf));
1971  #ifndef NO_I18N  #ifndef NO_I18N
1972                          strcpy(pvar->ts->UIMsg, "Server keys: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Server keys: ", _TRUNCATE);
1973                          UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar);
1974                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1975  #else  #else
# Line 1961  static void init_about_dlg(PTInstVar pva Line 1977  static void init_about_dlg(PTInstVar pva
1977  #endif  #endif
1978                          AUTH_get_auth_info(pvar, buf, sizeof(buf));                          AUTH_get_auth_info(pvar, buf, sizeof(buf));
1979  #ifndef NO_I18N  #ifndef NO_I18N
1980                          strcpy(pvar->ts->UIMsg, "Authentication: ");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Authentication: ", _TRUNCATE);
1981                          UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar);                          UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar);
1982                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1983  #else  #else
# Line 1971  static void init_about_dlg(PTInstVar pva Line 1987  static void init_about_dlg(PTInstVar pva
1987                          SSH_get_compression_info(pvar, buf, sizeof(buf));                          SSH_get_compression_info(pvar, buf, sizeof(buf));
1988                          if (pvar->ctos_compression == COMP_DELAYED) { // 遅延パケット圧縮の場合 (2006.6.23 yutaka)                          if (pvar->ctos_compression == COMP_DELAYED) { // 遅延パケット圧縮の場合 (2006.6.23 yutaka)
1989  #ifndef NO_I18N  #ifndef NO_I18N
1990                                  strcpy(pvar->ts->UIMsg, "Delayed Compression: ");                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Delayed Compression: ", _TRUNCATE);
1991                                  UTIL_get_lang_msg("DLG_ABOUT_COMPDELAY", pvar);                                  UTIL_get_lang_msg("DLG_ABOUT_COMPDELAY", pvar);
1992                                  append_about_text(dlg, pvar->ts->UIMsg, buf);                                  append_about_text(dlg, pvar->ts->UIMsg, buf);
1993  #else  #else
# Line 1979  static void init_about_dlg(PTInstVar pva Line 1995  static void init_about_dlg(PTInstVar pva
1995  #endif  #endif
1996                          } else {                          } else {
1997  #ifndef NO_I18N  #ifndef NO_I18N
1998                                  strcpy(pvar->ts->UIMsg, "Compression: ");                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Compression: ", _TRUNCATE);
1999                                  UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar);                                  UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar);
2000                                  append_about_text(dlg, pvar->ts->UIMsg, buf);                                  append_about_text(dlg, pvar->ts->UIMsg, buf);
2001  #else  #else
# Line 2052  static char FAR *get_cipher_name(int cip Line 2068  static char FAR *get_cipher_name(int cip
2068          switch (cipher) {          switch (cipher) {
2069          case SSH_CIPHER_NONE:          case SSH_CIPHER_NONE:
2070  #ifndef NO_I18N  #ifndef NO_I18N
2071                  strcpy(pvar->ts->UIMsg, "<ciphers below this line are disabled>");                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "<ciphers below this line are disabled>", _TRUNCATE);
2072                  UTIL_get_lang_msg("DLG_SSHSETUP_CIPHER_BORDER", pvar);                  UTIL_get_lang_msg("DLG_SSHSETUP_CIPHER_BORDER", pvar);
2073                  return pvar->ts->UIMsg;                  return pvar->ts->UIMsg;
2074  #else  #else
# Line 2154  static void init_setup_dlg(PTInstVar pva Line 2170  static void init_setup_dlg(PTInstVar pva
2170          UTIL_get_lang_msg("DLG_SSHSETUP_NOTICE", pvar);          UTIL_get_lang_msg("DLG_SSHSETUP_NOTICE", pvar);
2171          SetDlgItemText(dlg, IDC_NOTICEBANNER, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_NOTICEBANNER, pvar->ts->UIMsg);
2172    
2173          strcpy(pvar->ts->UIMsg, "OK");          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "OK", _TRUNCATE);
2174          UTIL_get_lang_msg("BTN_OK", pvar);          UTIL_get_lang_msg("BTN_OK", pvar);
2175          SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg);
2176    
2177          strcpy(pvar->ts->UIMsg, "Cancel");          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Cancel", _TRUNCATE);
2178          UTIL_get_lang_msg("BTN_CANCEL", pvar);          UTIL_get_lang_msg("BTN_CANCEL", pvar);
2179          SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg);
2180  #endif  #endif
# Line 2199  static void init_setup_dlg(PTInstVar pva Line 2215  static void init_setup_dlg(PTInstVar pva
2215          // SSH2 HeartBeat(keep-alive)を追加 (2005.2.22 yutaka)          // SSH2 HeartBeat(keep-alive)を追加 (2005.2.22 yutaka)
2216          {          {
2217                  char buf[10];                  char buf[10];
2218                  _snprintf(buf, sizeof(buf), "%d", pvar->settings.ssh_heartbeat_overtime);                  _snprintf_s(buf, sizeof(buf), _TRUNCATE,
2219                            "%d", pvar->settings.ssh_heartbeat_overtime);
2220                  SetDlgItemText(dlg, IDC_HEARTBEAT_EDIT, buf);                  SetDlgItemText(dlg, IDC_HEARTBEAT_EDIT, buf);
2221          }          }
2222    
# Line 2214  void get_teraterm_dir_relative_name(char Line 2231  void get_teraterm_dir_relative_name(char
2231    
2232          if (basename[0] == '\\' || basename[0] == '/'          if (basename[0] == '\\' || basename[0] == '/'
2233                  || (basename[0] != 0 && basename[1] == ':')) {                  || (basename[0] != 0 && basename[1] == ':')) {
2234                  strncpy(buf, basename, bufsize);                  strncpy_s(buf, bufsize, basename, _TRUNCATE);
                 buf[bufsize - 1] = 0;  
2235                  return;                  return;
2236          }          }
2237    
# Line 2227  void get_teraterm_dir_relative_name(char Line 2243  void get_teraterm_dir_relative_name(char
2243          }          }
2244    
2245          if (bufsize > filename_start) {          if (bufsize > filename_start) {
2246                  strncpy(buf + filename_start, basename, bufsize - filename_start);                  strncpy_s(buf + filename_start, bufsize - filename_start, basename, _TRUNCATE);
2247          }          }
         buf[bufsize - 1] = 0;  
2248  }  }
2249    
2250  int copy_teraterm_dir_relative_path(char FAR * dest, int destsize,  int copy_teraterm_dir_relative_path(char FAR * dest, int destsize,
# Line 2242  int copy_teraterm_dir_relative_path(char Line 2257  int copy_teraterm_dir_relative_path(char
2257    
2258          if (basename[0] != '\\' && basename[0] != '/'          if (basename[0] != '\\' && basename[0] != '/'
2259                  && (basename[0] == 0 || basename[1] != ':')) {                  && (basename[0] == 0 || basename[1] != ':')) {
2260                  strncpy(dest, basename, destsize);                  strncpy_s(dest, destsize, basename, _TRUNCATE);
                 dest[destsize - 1] = 0;  
2261                  return strlen(dest);                  return strlen(dest);
2262          }          }
2263    
# Line 2267  int copy_teraterm_dir_relative_path(char Line 2281  int copy_teraterm_dir_relative_path(char
2281          }          }
2282    
2283          if (i == filename_start) {          if (i == filename_start) {
2284                  strncpy(dest, basename + i, destsize);                  strncpy_s(dest, destsize, basename + i, _TRUNCATE);
2285          } else {          } else {
2286                  strncpy(dest, basename, destsize);                  strncpy_s(dest, destsize, basename, _TRUNCATE);
2287          }          }
         dest[destsize - 1] = 0;  
2288          return strlen(dest);          return strlen(dest);
2289  }  }
2290    
# Line 2306  static void complete_setup_dlg(PTInstVar Line 2319  static void complete_setup_dlg(PTInstVar
2319          }          }
2320          buf2[buf2index] = 0;          buf2[buf2index] = 0;
2321          normalize_cipher_order(buf2);          normalize_cipher_order(buf2);
2322          strcpy(pvar->settings.CipherOrder, buf2);          strncpy_s(pvar->settings.CipherOrder, sizeof(pvar->settings.CipherOrder), buf2, _TRUNCATE);
2323    
2324          buf[0] = 0;          buf[0] = 0;
2325          GetDlgItemText(dlg, IDC_READWRITEFILENAME, buf, sizeof(buf));          GetDlgItemText(dlg, IDC_READWRITEFILENAME, buf, sizeof(buf));
# Line 2389  static int get_keys_file_name(HWND paren Line 2402  static int get_keys_file_name(HWND paren
2402          params.lpstrInitialDir = NULL;          params.lpstrInitialDir = NULL;
2403  #ifndef NO_I18N  #ifndef NO_I18N
2404          if (readonly) {          if (readonly) {
2405                  strcpy(pvar->ts->UIMsg, "Choose a read-only known-hosts file to add");                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Choose a read-only known-hosts file to add", _TRUNCATE);
2406                  UTIL_get_lang_msg("MSG_OPEN_KNOWNHOSTS_RO_TITLE", pvar);                  UTIL_get_lang_msg("MSG_OPEN_KNOWNHOSTS_RO_TITLE", pvar);
2407          }          }
2408          else {          else {
2409                  strcpy(pvar->ts->UIMsg, "Choose a read/write known-hosts file");                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Choose a read/write known-hosts file", _TRUNCATE);
2410                  UTIL_get_lang_msg("MSG_OPEN_KNOWNHOSTS_RW_TITLE", pvar);                  UTIL_get_lang_msg("MSG_OPEN_KNOWNHOSTS_RW_TITLE", pvar);
2411          }          }
2412          params.lpstrTitle = pvar->ts->UIMsg;          params.lpstrTitle = pvar->ts->UIMsg;
# Line 2415  static int get_keys_file_name(HWND paren Line 2428  static int get_keys_file_name(HWND paren
2428                  if (err != 0) {                  if (err != 0) {
2429                          char buf[1024];                          char buf[1024];
2430  #ifndef NO_I18N  #ifndef NO_I18N
2431                          strcpy(pvar->ts->UIMsg, "Unable to display file dialog box: error %d");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unable to display file dialog box: error %d", _TRUNCATE);
2432                          UTIL_get_lang_msg("MSG_OPEN_FILEDLG_KNOWNHOSTS_ERROR", pvar);                          UTIL_get_lang_msg("MSG_OPEN_FILEDLG_KNOWNHOSTS_ERROR", pvar);
2433                          _snprintf(buf, sizeof(buf), pvar->ts->UIMsg, err);                          _snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, err);
2434  #else  #else
2435                          _snprintf(buf, sizeof(buf),                          _snprintf(buf, sizeof(buf),
2436                                            "Cannot show file dialog box: error %d", err);                                            "Cannot show file dialog box: error %d", err);
# Line 2452  static void choose_read_only_file(HWND d Line 2465  static void choose_read_only_file(HWND d
2465                  buf2[0] = 0;                  buf2[0] = 0;
2466                  GetDlgItemText(dlg, IDC_READONLYFILENAME, buf2, sizeof(buf2));                  GetDlgItemText(dlg, IDC_READONLYFILENAME, buf2, sizeof(buf2));
2467                  if (buf2[0] != 0 && buf2[strlen(buf2) - 1] != ';') {                  if (buf2[0] != 0 && buf2[strlen(buf2) - 1] != ';') {
2468                          strncat(buf2, ";", sizeof(buf2));                          strncat_s(buf2, sizeof(buf2), ";", _TRUNCATE);
2469                  }                  }
2470                  strncat(buf2, buf, sizeof(buf2));                  strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
2471                  SetDlgItemText(dlg, IDC_READONLYFILENAME, buf2);                  SetDlgItemText(dlg, IDC_READONLYFILENAME, buf2);
2472          }          }
2473  }  }
# Line 2855  static void ssh_make_comment(char *comme Line 2868  static void ssh_make_comment(char *comme
2868          // get Windows logon user name          // get Windows logon user name
2869          dwSize = sizeof(user);          dwSize = sizeof(user);
2870          if (GetUserName(user, &dwSize) == 0) {          if (GetUserName(user, &dwSize) == 0) {
2871                  strcpy(user, "yutaka");                  strncpy_s(user, sizeof(user), "yutaka", _TRUNCATE);
2872          }          }
2873    
2874          // get local hostname (by WinSock)          // get local hostname (by WinSock)
# Line 2867  static void ssh_make_comment(char *comme Line 2880  static void ssh_make_comment(char *comme
2880                  WSACleanup();                  WSACleanup();
2881          }          }
2882          if (ret != 0) {          if (ret != 0) {
2883                  strcpy(host, "sai");                  strncpy_s(host, sizeof(host), "sai", _TRUNCATE);
2884          }          }
2885    
2886          _snprintf(comment, maxlen, "%s@%s", user, host);          _snprintf_s(comment, maxlen, _TRUNCATE, "%s@%s", user, host);
2887  }  }
2888    
2889  // uuencode (rfc1521)  // uuencode (rfc1521)
# Line 3086  static BOOL CALLBACK TTXKeyGenerator(HWN Line 3099  static BOOL CALLBACK TTXKeyGenerator(HWN
3099                          ofn.hwndOwner = dlg;                          ofn.hwndOwner = dlg;
3100                          if (key_type == KEY_RSA1) {                          if (key_type == KEY_RSA1) {
3101  #ifndef NO_I18N  #ifndef NO_I18N
3102                                  strncpy(pvar->ts->UIMsg, "SSH1 RSA key(identity.pub)\\0identity.pub\\0All Files(*.*)\\0*.*\\0\\0", sizeof(pvar->ts->UIMsg));                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH1 RSA key(identity.pub)\\0identity.pub\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);
3103                                  UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_RSA1_FILTER", pvar);                                  UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_RSA1_FILTER", pvar);
3104                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
3105                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
3106  #else  #else
3107                                  ofn.lpstrFilter = "SSH1 RSA key(identity.pub)\0identity.pub\0All Files(*.*)\0*.*\0\0";                                  ofn.lpstrFilter = "SSH1 RSA key(identity.pub)\0identity.pub\0All Files(*.*)\0*.*\0\0";
3108  #endif  #endif
3109                                  _snprintf(filename, sizeof(filename), "identity.pub");                                  strncpy_s(filename, sizeof(filename), "identity.pub", _TRUNCATE);
3110                          } else if (key_type == KEY_RSA) {                          } else if (key_type == KEY_RSA) {
3111  #ifndef NO_I18N  #ifndef NO_I18N
3112                                  strncpy(pvar->ts->UIMsg, "SSH2 RSA key(id_rsa.pub)\\0id_rsa.pub\\0All Files(*.*)\\0*.*\\0\\0", sizeof(pvar->ts->UIMsg));                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH2 RSA key(id_rsa.pub)\\0id_rsa.pub\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);
3113                                  UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_RSA_FILTER", pvar);                                  UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_RSA_FILTER", pvar);
3114                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
3115                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
3116  #else  #else
3117                                  ofn.lpstrFilter = "SSH2 RSA key(id_rsa.pub)\0id_rsa.pub\0All Files(*.*)\0*.*\0\0";                                  ofn.lpstrFilter = "SSH2 RSA key(id_rsa.pub)\0id_rsa.pub\0All Files(*.*)\0*.*\0\0";
3118  #endif  #endif
3119                                  _snprintf(filename, sizeof(filename), "id_rsa.pub");                                  strncpy_s(filename, sizeof(filename), "id_rsa.pub", _TRUNCATE);
3120                          } else {                          } else {
3121  #ifndef NO_I18N  #ifndef NO_I18N
3122                                  strncpy(pvar->ts->UIMsg, "SSH2 DSA key(id_dsa.pub)\\0id_dsa.pub\\0All Files(*.*)\\0*.*\\0\\0", sizeof(pvar->ts->UIMsg));                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH2 DSA key(id_dsa.pub)\\0id_dsa.pub\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);
3123                                  UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_DSA_FILTER", pvar);                                  UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_DSA_FILTER", pvar);
3124                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
3125                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
3126  #else  #else
3127                                  ofn.lpstrFilter = "SSH2 DSA key(id_dsa.pub)\0id_dsa.pub\0All Files(*.*)\0*.*\0\0";                                  ofn.lpstrFilter = "SSH2 DSA key(id_dsa.pub)\0id_dsa.pub\0All Files(*.*)\0*.*\0\0";
3128  #endif  #endif
3129                                  _snprintf(filename, sizeof(filename), "id_dsa.pub");                                  strncpy_s(filename, sizeof(filename), "id_dsa.pub", _TRUNCATE);
3130                          }                          }
3131                          ofn.lpstrFile = filename;                          ofn.lpstrFile = filename;
3132                          ofn.nMaxFile = sizeof(filename);                          ofn.nMaxFile = sizeof(filename);
3133  #ifndef NO_I18N  #ifndef NO_I18N
3134                          strcpy(pvar->ts->UIMsg, "Save public key as:");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Save public key as:", _TRUNCATE);
3135                          UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_TITLE", pvar);                          UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_TITLE", pvar);
3136                          ofn.lpstrTitle = pvar->ts->UIMsg;                          ofn.lpstrTitle = pvar->ts->UIMsg;
3137  #else  #else
# Line 3135  static BOOL CALLBACK TTXKeyGenerator(HWN Line 3148  static BOOL CALLBACK TTXKeyGenerator(HWN
3148                          fp = fopen(filename, "wb");                          fp = fopen(filename, "wb");
3149                          if (fp == NULL) {                          if (fp == NULL) {
3150  #ifndef NO_I18N  #ifndef NO_I18N
3151                                  strcpy(pvar->ts->UIMsg, "Can't open key file");                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Can't open key file", _TRUNCATE);
3152                                  UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar);                                  UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar);
3153                                  strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3154                                  strcpy(pvar->ts->UIMsg, "ERROR");                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "ERROR", _TRUNCATE);
3155                                  UTIL_get_lang_msg("MSG_ERROR", pvar);                                  UTIL_get_lang_msg("MSG_ERROR", pvar);
3156                                  MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                                  MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
3157  #else  #else
# Line 3233  public_error: Line 3246  public_error:
3246                          // check matching                          // check matching
3247                          if (strcmp(buf, buf_conf) != 0) {                          if (strcmp(buf, buf_conf) != 0) {
3248  #ifndef NO_I18N  #ifndef NO_I18N
3249                                  strcpy(pvar->ts->UIMsg, "Two passphrases don't match.");                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Two passphrases don't match.", _TRUNCATE);
3250                                  UTIL_get_lang_msg("MSG_SAVE_PRIVATE_KEY_MISMATCH_ERROR", pvar);                                  UTIL_get_lang_msg("MSG_SAVE_PRIVATE_KEY_MISMATCH_ERROR", pvar);
3251                                  strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3252                                  strcpy(pvar->ts->UIMsg, "ERROR");                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "ERROR", _TRUNCATE);
3253                                  UTIL_get_lang_msg("MSG_ERROR", pvar);                                  UTIL_get_lang_msg("MSG_ERROR", pvar);
3254                                  MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                                  MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
3255  #else  #else
# Line 3248  public_error: Line 3261  public_error:
3261                          // check empty-passphrase (this is warning level)                          // check empty-passphrase (this is warning level)
3262                          if (buf[0] == '\0') {                          if (buf[0] == '\0') {
3263  #ifndef NO_I18N  #ifndef NO_I18N
3264                                  strcpy(pvar->ts->UIMsg, "Are you sure that you want to use a empty passphrase?");                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Are you sure that you want to use a empty passphrase?", _TRUNCATE);
3265                                  UTIL_get_lang_msg("MSG_SAVE_PRIVATEKEY_EMPTY_WARN", pvar);                                  UTIL_get_lang_msg("MSG_SAVE_PRIVATEKEY_EMPTY_WARN", pvar);
3266                                  strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3267                                  strcpy(pvar->ts->UIMsg, "WARNING");                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "WARNING", _TRUNCATE);
3268                                  UTIL_get_lang_msg("MSG_WARNING", pvar);                                  UTIL_get_lang_msg("MSG_WARNING", pvar);
3269                                  ret = MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_YESNO | MB_ICONWARNING);                                  ret = MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_YESNO | MB_ICONWARNING);
3270  #else  #else
# Line 3269  public_error: Line 3282  public_error:
3282                          ofn.hwndOwner = dlg;                          ofn.hwndOwner = dlg;
3283                          if (key_type == KEY_RSA1) {                          if (key_type == KEY_RSA1) {
3284  #ifndef NO_I18N  #ifndef NO_I18N
3285                                  strncpy(pvar->ts->UIMsg, "SSH1 RSA key(identity)\\0identity\\0All Files(*.*)\\0*.*\\0\\0", sizeof(pvar->ts->UIMsg));                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH1 RSA key(identity)\\0identity\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);
3286                                  UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_RSA1_FILTER", pvar);                                  UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_RSA1_FILTER", pvar);
3287                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
3288                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
3289  #else  #else
3290                                  ofn.lpstrFilter = "SSH1 RSA key(identity)\0identity\0All Files(*.*)\0*.*\0\0";                                  ofn.lpstrFilter = "SSH1 RSA key(identity)\0identity\0All Files(*.*)\0*.*\0\0";
3291  #endif  #endif
3292                                  _snprintf(filename, sizeof(filename), "identity");                                  strncpy_s(filename, sizeof(filename), "identity", _TRUNCATE);
3293                          } else if (key_type == KEY_RSA) {                          } else if (key_type == KEY_RSA) {
3294  #ifndef NO_I18N  #ifndef NO_I18N
3295                                  strncpy(pvar->ts->UIMsg, "SSH2 RSA key(id_rsa)\\0id_rsa\\0All Files(*.*)\\0*.*\\0\\0", sizeof(pvar->ts->UIMsg));                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH2 RSA key(id_rsa)\\0id_rsa\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);
3296                                  UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_RSA_FILTER", pvar);                                  UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_RSA_FILTER", pvar);
3297                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
3298                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
3299  #else  #else
3300                                  ofn.lpstrFilter = "SSH2 RSA key(id_rsa)\0id_rsa\0All Files(*.*)\0*.*\0\0";                                  ofn.lpstrFilter = "SSH2 RSA key(id_rsa)\0id_rsa\0All Files(*.*)\0*.*\0\0";
3301  #endif  #endif
3302                                  _snprintf(filename, sizeof(filename), "id_rsa");                                  strncpy_s(filename, sizeof(filename), "id_rsa", _TRUNCATE);
3303                          } else {                          } else {
3304  #ifndef NO_I18N  #ifndef NO_I18N
3305                                  strncpy(pvar->ts->UIMsg, "SSH2 DSA key(id_dsa)\\0id_dsa\\0All Files(*.*)\\0*.*\\0\\0", sizeof(pvar->ts->UIMsg));                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH2 DSA key(id_dsa)\\0id_dsa\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);
3306                                  UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_DSA_FILTER", pvar);                                  UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_DSA_FILTER", pvar);
3307                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
3308                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
3309  #else  #else
3310                                  ofn.lpstrFilter = "SSH2 DSA key(id_dsa)\0id_dsa\0All Files(*.*)\0*.*\0\0";                                  ofn.lpstrFilter = "SSH2 DSA key(id_dsa)\0id_dsa\0All Files(*.*)\0*.*\0\0";
3311  #endif  #endif
3312                                  _snprintf(filename, sizeof(filename), "id_dsa");                                  strncpy_s(filename, sizeof(filename), "id_dsa", _TRUNCATE);
3313                          }                          }
3314                          ofn.lpstrFile = filename;                          ofn.lpstrFile = filename;
3315                          ofn.nMaxFile = sizeof(filename);                          ofn.nMaxFile = sizeof(filename);
3316  #ifndef NO_I18N  #ifndef NO_I18N
3317                          strcpy(pvar->ts->UIMsg, "Save private key as:");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Save private key as:", _TRUNCATE);
3318                          UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_TITLE", pvar);                          UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_TITLE", pvar);
3319                          ofn.lpstrTitle = pvar->ts->UIMsg;                          ofn.lpstrTitle = pvar->ts->UIMsg;
3320  #else  #else
# Line 3416  public_error: Line 3429  public_error:
3429                                  fp = fopen(filename, "wb");                                  fp = fopen(filename, "wb");
3430                                  if (fp == NULL) {                                  if (fp == NULL) {
3431  #ifndef NO_I18N  #ifndef NO_I18N
3432                                          strcpy(pvar->ts->UIMsg, "Can't open key file");                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Can't open key file", _TRUNCATE);
3433                                          UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar);                                          UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar);
3434                                          strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3435                                          strcpy(pvar->ts->UIMsg, "ERROR");                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "ERROR", _TRUNCATE);
3436                                          UTIL_get_lang_msg("MSG_ERROR", pvar);                                          UTIL_get_lang_msg("MSG_ERROR", pvar);
3437                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
3438  #else  #else
# Line 3451  error:; Line 3464  error:;
3464                                  fp = fopen(filename, "w");                                  fp = fopen(filename, "w");
3465                                  if (fp == NULL) {                                  if (fp == NULL) {
3466  #ifndef NO_I18N  #ifndef NO_I18N
3467                                          strcpy(pvar->ts->UIMsg, "Can't open key file");                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Can't open key file", _TRUNCATE);
3468                                          UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar);                                          UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar);
3469                                          strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3470                                          strcpy(pvar->ts->UIMsg, "ERROR");                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "ERROR", _TRUNCATE);
3471                                          UTIL_get_lang_msg("MSG_ERROR", pvar);                                          UTIL_get_lang_msg("MSG_ERROR", pvar);
3472                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
3473  #else  #else
# Line 3470  error:; Line 3483  error:;
3483                                  }                                  }
3484                                  if (ret == 0) {                                  if (ret == 0) {
3485  #ifndef NO_I18N  #ifndef NO_I18N
3486                                          strcpy(pvar->ts->UIMsg, "Can't open key file");                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Can't open key file", _TRUNCATE);
3487                                          UTIL_get_lang_msg("MSG_SAVE_KEY_WRITEFILE_ERROR", pvar);                                          UTIL_get_lang_msg("MSG_SAVE_KEY_WRITEFILE_ERROR", pvar);
3488                                          strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3489                                          strcpy(pvar->ts->UIMsg, "ERROR");                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "ERROR", _TRUNCATE);
3490                                          UTIL_get_lang_msg("MSG_ERROR", pvar);                                          UTIL_get_lang_msg("MSG_ERROR", pvar);
3491                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
3492  #else  #else
# Line 3511  static int PASCAL FAR TTXProcessCommand( Line 3524  static int PASCAL FAR TTXProcessCommand(
3524                  if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SSHKEYGEN), hWin, TTXKeyGenerator,                  if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SSHKEYGEN), hWin, TTXKeyGenerator,
3525                          (LPARAM) pvar) == -1) {                          (LPARAM) pvar) == -1) {
3526  #ifndef NO_I18N  #ifndef NO_I18N
3527                          strcpy(pvar->ts->UIMsg, "Unable to display Key Generator dialog box.");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unable to display Key Generator dialog box.", _TRUNCATE);
3528                          UTIL_get_lang_msg("MSG_CREATEWINDOW_KEYGEN_ERROR", pvar);                          UTIL_get_lang_msg("MSG_CREATEWINDOW_KEYGEN_ERROR", pvar);
3529                          strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3530                          strcpy(pvar->ts->UIMsg, "TTSSH Error");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "TTSSH Error", _TRUNCATE);
3531                          UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar);                          UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar);
3532                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
3533  #else  #else
# Line 3530  static int PASCAL FAR TTXProcessCommand( Line 3543  static int PASCAL FAR TTXProcessCommand(
3543                           (LPARAM) pvar)                           (LPARAM) pvar)
3544                          == -1) {                          == -1) {
3545  #ifndef NO_I18N  #ifndef NO_I18N
3546                          strcpy(pvar->ts->UIMsg, "Unable to display About dialog box.");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unable to display About dialog box.", _TRUNCATE);
3547                          UTIL_get_lang_msg("MSG_CREATEWINDOW_ABOUT_ERROR", pvar);                          UTIL_get_lang_msg("MSG_CREATEWINDOW_ABOUT_ERROR", pvar);
3548                          strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3549                          strcpy(pvar->ts->UIMsg, "TTSSH Error");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "TTSSH Error", _TRUNCATE);
3550                          UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar);                          UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar);
3551                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
3552  #else  #else
# Line 3551  static int PASCAL FAR TTXProcessCommand( Line 3564  static int PASCAL FAR TTXProcessCommand(
3564                           (LPARAM) pvar)                           (LPARAM) pvar)
3565                          == -1) {                          == -1) {
3566  #ifndef NO_I18N  #ifndef NO_I18N
3567                          strcpy(pvar->ts->UIMsg, "Unable to display TTSSH Setup dialog box.");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unable to display TTSSH Setup dialog box.", _TRUNCATE);
3568                          UTIL_get_lang_msg("MSG_CREATEWINDOW_SETUP_ERROR", pvar);                          UTIL_get_lang_msg("MSG_CREATEWINDOW_SETUP_ERROR", pvar);
3569                          strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3570                          strcpy(pvar->ts->UIMsg, "TTSSH Error");                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "TTSSH Error", _TRUNCATE);
3571                          UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar);                          UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar);
3572                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
3573  #else  #else
# Line 3663  static void PASCAL FAR TTXSetCommandLine Line 3676  static void PASCAL FAR TTXSetCommandLine
3676    
3677          if (i < cmdlen) {          if (i < cmdlen) {
3678                  buf = malloc(cmdlen+1);                  buf = malloc(cmdlen+1);
3679                  strncpy(buf, cmd + i, cmdlen);                  strncpy_s(buf, cmdlen, cmd + i, _TRUNCATE);
3680                  buf[cmdlen] = 0;                  buf[cmdlen] = 0;
3681                  cmd[i] = 0;                  cmd[i] = 0;
3682    
3683                  write_ssh_options(pvar, tmpFile, &pvar->settings, FALSE);                  write_ssh_options(pvar, tmpFile, &pvar->settings, FALSE);
3684    
3685                  strncat(cmd, " /ssh-consume=", cmdlen-1-strlen(cmd));                  strncat_s(cmd, cmdlen, " /ssh-consume=", _TRUNCATE);
3686                  strncat(cmd, tmpFile, cmdlen);                  strncat_s(cmd, cmdlen, tmpFile, _TRUNCATE);
3687    
3688                  strncat(cmd, buf, cmdlen-1-strlen(cmd));                  strncat_s(cmd, cmdlen, buf, _TRUNCATE);
3689    
3690                  if (pvar->hostdlg_Enabled) {                  if (pvar->hostdlg_Enabled) {
3691                          strncat(cmd, " /ssh", cmdlen-1-strlen(cmd));                          strncat_s(cmd, cmdlen, " /ssh", _TRUNCATE);
3692    
3693                          // add option of SSH protcol version (2004.10.11 yutaka)                          // add option of SSH protcol version (2004.10.11 yutaka)
3694                          if (pvar->settings.ssh_protocol_version == 2) {                          if (pvar->settings.ssh_protocol_version == 2) {
3695                                  strncat(cmd, " /2", cmdlen-1-strlen(cmd));                                  strncat_s(cmd, cmdlen, " /2", _TRUNCATE);
3696                          } else {                          } else {
3697                                  strncat(cmd, " /1", cmdlen-1-strlen(cmd));                                  strncat_s(cmd, cmdlen, " /1", _TRUNCATE);
3698                          }                          }
3699    
3700                  }                  }
# Line 3693  static void PASCAL FAR TTXSetCommandLine Line 3706  static void PASCAL FAR TTXSetCommandLine
3706    
3707                          // 自動ログインの場合は下記フラグが0のため、必要なコマンドを付加する。                          // 自動ログインの場合は下記フラグが0のため、必要なコマンドを付加する。
3708                          if (!pvar->hostdlg_Enabled) {                          if (!pvar->hostdlg_Enabled) {
3709                                  _snprintf(tmp, sizeof(tmp), " /ssh /%d", pvar->settings.ssh_protocol_version);                                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE,
3710                                  strncat(cmd, tmp, cmdlen-1-strlen(cmd));                                          " /ssh /%d", pvar->settings.ssh_protocol_version);
3711                                    strncat_s(cmd, cmdlen, tmp, _TRUNCATE);
3712                          }                          }
3713    
3714                          // パスワードを覚えている場合のみ、コマンドラインに渡す。(2006.8.3 yutaka)                          // パスワードを覚えている場合のみ、コマンドラインに渡す。(2006.8.3 yutaka)
3715                          if (pvar->settings.remember_password &&                          if (pvar->settings.remember_password &&
3716                                  pvar->auth_state.cur_cred.method == SSH_AUTH_PASSWORD) {                                  pvar->auth_state.cur_cred.method == SSH_AUTH_PASSWORD) {
3717                                  replace_blank_to_mark(pvar->auth_state.cur_cred.password, mark, sizeof(mark));                                  replace_blank_to_mark(pvar->auth_state.cur_cred.password, mark, sizeof(mark));
3718                                  _snprintf(tmp, sizeof(tmp), " /auth=password /user=%s /passwd=%s", pvar->auth_state.user, mark);                                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE,
3719                                  strncat(cmd, tmp, cmdlen-1-strlen(cmd));                                          " /auth=password /user=%s /passwd=%s", pvar->auth_state.user, mark);
3720                                    strncat_s(cmd, cmdlen, tmp, _TRUNCATE);
3721    
3722                          } else if (pvar->settings.remember_password &&                          } else if (pvar->settings.remember_password &&
3723                                                  pvar->auth_state.cur_cred.method == SSH_AUTH_RSA) {                                                  pvar->auth_state.cur_cred.method == SSH_AUTH_RSA) {
3724                                  replace_blank_to_mark(pvar->auth_state.cur_cred.password, mark, sizeof(mark));                                  replace_blank_to_mark(pvar->auth_state.cur_cred.password, mark, sizeof(mark));
3725                                  _snprintf(tmp, sizeof(tmp), " /auth=publickey /user=%s /passwd=%s", pvar->auth_state.user, mark);                                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE,
3726                                  strncat(cmd, tmp, cmdlen-1-strlen(cmd));                                          " /auth=publickey /user=%s /passwd=%s", pvar->auth_state.user, mark);
3727                                    strncat_s(cmd, cmdlen, tmp, _TRUNCATE);
3728    
3729                                  replace_blank_to_mark(pvar->session_settings.DefaultRSAPrivateKeyFile, mark, sizeof(mark));                                  replace_blank_to_mark(pvar->session_settings.DefaultRSAPrivateKeyFile, mark, sizeof(mark));
3730                                  _snprintf(tmp, sizeof(tmp), " /keyfile=%s", mark);                                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, " /keyfile=%s", mark);
3731                                  strncat(cmd, tmp, cmdlen-1-strlen(cmd));                                  strncat_s(cmd, cmdlen, tmp, _TRUNCATE);
3732    
3733                          } else if (pvar->auth_state.cur_cred.method == SSH_AUTH_TIS) {                          } else if (pvar->auth_state.cur_cred.method == SSH_AUTH_TIS) {
3734                                  // keyboard-interactive認証の場合は何もしない。                                  // keyboard-interactive認証の場合は何もしない。
# Line 3872  int CALLBACK LibMain(HANDLE hInstance, W Line 3888  int CALLBACK LibMain(HANDLE hInstance, W
3888    
3889  /*  /*
3890   * $Log: not supported by cvs2svn $   * $Log: not supported by cvs2svn $
3891     * Revision 1.64  2007/07/23 14:23:36  maya
3892     * シリアル接続のCOM最大ポートを200まで拡張した。
3893     *
3894   * Revision 1.63  2007/07/05 12:16:11  doda   * Revision 1.63  2007/07/05 12:16:11  doda
3895   * 利用可能なCOMポートが無い時、新しい接続ダイアログでシリアルポートの選択を無効化した。   * 利用可能なCOMポートが無い時、新しい接続ダイアログでシリアルポートの選択を無効化した。
3896   *   *

Legend:
Removed from v.2984  
changed lines
  Added in v.2992

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26