Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/ttssh2/ttxssh/hosts.c

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

revision 6146 by maya, Tue Nov 17 04:38:16 2015 UTC revision 6147 by maya, Tue Nov 17 09:31:03 2015 UTC
# Line 59  static HFONT DlgHostsReplaceFont; Line 59  static HFONT DlgHostsReplaceFont;
59  static char base64[] ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";  static char base64[] ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
60    
61    
 // ホストキーの初期化 (2006.3.21 yutaka)  
 static void init_hostkey(Key *key)  
 {  
         key->type = KEY_UNSPEC;  
   
         // SSH1  
         key->bits = 0;  
         if (key->exp != NULL) {  
                 free(key->exp);  
                 key->exp = NULL;  
         }  
         if (key->mod != NULL) {  
                 free(key->mod);  
                 key->mod = NULL;  
         }  
   
         // SSH2  
         if (key->dsa != NULL) {  
                 DSA_free(key->dsa);  
                 key->dsa = NULL;  
         }  
         if (key->rsa != NULL) {  
                 RSA_free(key->rsa);  
                 key->rsa = NULL;  
         }  
         if (key->ecdsa != NULL) {  
                 EC_KEY_free(key->ecdsa);  
                 key->ecdsa = NULL;  
         }  
 }  
   
   
62  static char FAR *FAR * parse_multi_path(char FAR * buf)  static char FAR *FAR * parse_multi_path(char FAR * buf)
63  {  {
64          int i;          int i;
# Line 130  static char FAR *FAR * parse_multi_path( Line 98  static char FAR *FAR * parse_multi_path(
98  void HOSTS_init(PTInstVar pvar)  void HOSTS_init(PTInstVar pvar)
99  {  {
100          pvar->hosts_state.prefetched_hostname = NULL;          pvar->hosts_state.prefetched_hostname = NULL;
101          init_hostkey(&pvar->hosts_state.hostkey);          key_init(&pvar->hosts_state.hostkey);
102          pvar->hosts_state.hosts_dialog = NULL;          pvar->hosts_state.hosts_dialog = NULL;
103          pvar->hosts_state.file_names = NULL;          pvar->hosts_state.file_names = NULL;
104  }  }
# Line 692  static int read_host_key(PTInstVar pvar, Line 660  static int read_host_key(PTInstVar pvar,
660          }          }
661    
662          // hostkey type is KEY_UNSPEC.          // hostkey type is KEY_UNSPEC.
663          init_hostkey(&pvar->hosts_state.hostkey);          key_init(&pvar->hosts_state.hostkey);
664    
665          do {          do {
666                  if (pvar->hosts_state.file_data == NULL                  if (pvar->hosts_state.file_data == NULL
# Line 1473  static void delete_different_key(PTInstV Line 1441  static void delete_different_key(PTInstV
1441          }          }
1442          else {          else {
1443                  Key key; // 接続中のホストのキー                  Key key; // 接続中のホストのキー
                 Key *key_freed;  
1444                  int length;                  int length;
1445                  char filename[MAX_PATH];                  char filename[MAX_PATH];
1446                  char tmp[L_tmpnam];                  char tmp[L_tmpnam];
# Line 1507  static void delete_different_key(PTInstV Line 1474  static void delete_different_key(PTInstV
1474                  }                  }
1475    
1476                  // 接続中のサーバのキーを読み込む                  // 接続中のサーバのキーを読み込む
1477                  key_copy(&key, &(pvar->hosts_state.hostkey));                  memset(&key, 0, sizeof(key));
1478                    key_copy(&key, &pvar->hosts_state.hostkey);
1479    
1480                  // ファイルから読み込む                  // ファイルから読み込む
1481                  begin_read_host_files(pvar, 0);                  begin_read_host_files(pvar, 0);
# Line 1643  error2: Line 1611  error2:
1611                  finish_read_host_files(pvar, 0);                  finish_read_host_files(pvar, 0);
1612    
1613                  // 最後にメモリを解放しておく。                  // 最後にメモリを解放しておく。
1614                  key_freed = key_new(KEY_UNSPEC);                  key_init(&key);
                 memcpy(key_freed, &key, sizeof(Key));  
                 key_free(key_freed);  
1615          }          }
1616  }  }
1617    
# Line 1667  void HOSTS_delete_all_hostkeys(PTInstVar Line 1633  void HOSTS_delete_all_hostkeys(PTInstVar
1633          }          }
1634          else {          else {
1635                  Key key; // 接続中のホストのキー                  Key key; // 接続中のホストのキー
                 Key *key_freed;  
1636                  int length;                  int length;
1637                  char filename[MAX_PATH];                  char filename[MAX_PATH];
1638                  char tmp[L_tmpnam];                  char tmp[L_tmpnam];
# Line 1702  void HOSTS_delete_all_hostkeys(PTInstVar Line 1667  void HOSTS_delete_all_hostkeys(PTInstVar
1667                  }                  }
1668    
1669                  // 接続中のサーバのキーを読み込む                  // 接続中のサーバのキーを読み込む
1670                  key_copy(&key, &(pvar->hosts_state.hostkey));                  memset(&key, 0, sizeof(key));
1671                    key_copy(&key, &pvar->hosts_state.hostkey);
1672    
1673                  // ファイルから読み込む                  // ファイルから読み込む
1674                  begin_read_host_files(pvar, 0);                  begin_read_host_files(pvar, 0);
# Line 1835  void HOSTS_delete_all_hostkeys(PTInstVar Line 1801  void HOSTS_delete_all_hostkeys(PTInstVar
1801                  finish_read_host_files(pvar, 0);                  finish_read_host_files(pvar, 0);
1802    
1803                  // 最後にメモリを解放しておく。                  // 最後にメモリを解放しておく。
1804                  key_freed = key_new(KEY_UNSPEC);                  key_init(&key);
                 memcpy(key_freed, &key, sizeof(Key));  
                 key_free(key_freed);  
1805          }          }
1806  }  }
1807    
# Line 2433  BOOL HOSTS_check_host_key(PTInstVar pvar Line 2397  BOOL HOSTS_check_host_key(PTInstVar pvar
2397          }          }
2398    
2399          // known_hosts に存在しないキーはあとでファイルへ書き込むために、ここで保存しておく。          // known_hosts に存在しないキーはあとでファイルへ書き込むために、ここで保存しておく。
2400          key_copy(&(pvar->hosts_state.hostkey), key);          key_copy(&pvar->hosts_state.hostkey, key);
2401    
2402          free(pvar->hosts_state.prefetched_hostname);          free(pvar->hosts_state.prefetched_hostname);
2403          pvar->hosts_state.prefetched_hostname = _strdup(hostname);          pvar->hosts_state.prefetched_hostname = _strdup(hostname);
# Line 2478  void HOSTS_end(PTInstVar pvar) Line 2442  void HOSTS_end(PTInstVar pvar)
2442          int i;          int i;
2443    
2444          free(pvar->hosts_state.prefetched_hostname);          free(pvar->hosts_state.prefetched_hostname);
2445          init_hostkey(&pvar->hosts_state.hostkey);          key_init(&pvar->hosts_state.hostkey);
2446    
2447          if (pvar->hosts_state.file_names != NULL) {          if (pvar->hosts_state.file_names != NULL) {
2448                  for (i = 0; pvar->hosts_state.file_names[i] != NULL; i++) {                  for (i = 0; pvar->hosts_state.file_names[i] != NULL; i++) {

Legend:
Removed from v.6146  
changed lines
  Added in v.6147

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