1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-07-29 13:01:13 +03:00

examples: Use the right cleanup functions.

This commit is contained in:
Oliver Stöneberg
2011-05-13 05:50:41 -07:00
committed by Andreas Schneider
parent e3311d03db
commit 525324b2f9
2 changed files with 9 additions and 6 deletions

View File

@ -157,7 +157,7 @@ int authenticate_console(ssh_session session){
banner = ssh_get_issue_banner(session); banner = ssh_get_issue_banner(session);
if (banner) { if (banner) {
printf("%s\n",banner); printf("%s\n",banner);
free(banner); ssh_string_free_char(banner);
} }
return rc; return rc;

View File

@ -48,7 +48,7 @@ int verify_knownhost(ssh_session session){
case SSH_SERVER_KNOWN_CHANGED: case SSH_SERVER_KNOWN_CHANGED:
fprintf(stderr,"Host key for server changed : server's one is now :\n"); fprintf(stderr,"Host key for server changed : server's one is now :\n");
ssh_print_hexa("Public key hash",hash, hlen); ssh_print_hexa("Public key hash",hash, hlen);
free(hash); ssh_clean_pubkey_hash(&hash);
fprintf(stderr,"For security reason, connection will be stopped\n"); fprintf(stderr,"For security reason, connection will be stopped\n");
return -1; return -1;
case SSH_SERVER_FOUND_OTHER: case SSH_SERVER_FOUND_OTHER:
@ -65,20 +65,23 @@ int verify_knownhost(ssh_session session){
hexa = ssh_get_hexa(hash, hlen); hexa = ssh_get_hexa(hash, hlen);
fprintf(stderr,"The server is unknown. Do you trust the host key ?\n"); fprintf(stderr,"The server is unknown. Do you trust the host key ?\n");
fprintf(stderr, "Public key hash: %s\n", hexa); fprintf(stderr, "Public key hash: %s\n", hexa);
free(hexa); ssh_string_free_char(hexa);
if (fgets(buf, sizeof(buf), stdin) == NULL) { if (fgets(buf, sizeof(buf), stdin) == NULL) {
ssh_clean_pubkey_hash(&hash);
return -1; return -1;
} }
if(strncasecmp(buf,"yes",3)!=0){ if(strncasecmp(buf,"yes",3)!=0){
ssh_clean_pubkey_hash(&hash);
return -1; return -1;
} }
fprintf(stderr,"This new key will be written on disk for further usage. do you agree ?\n"); fprintf(stderr,"This new key will be written on disk for further usage. do you agree ?\n");
if (fgets(buf, sizeof(buf), stdin) == NULL) { if (fgets(buf, sizeof(buf), stdin) == NULL) {
ssh_clean_pubkey_hash(&hash);
return -1; return -1;
} }
if(strncasecmp(buf,"yes",3)==0){ if(strncasecmp(buf,"yes",3)==0){
if (ssh_write_knownhost(session) < 0) { if (ssh_write_knownhost(session) < 0) {
free(hash); ssh_clean_pubkey_hash(&hash);
fprintf(stderr, "error %s\n", strerror(errno)); fprintf(stderr, "error %s\n", strerror(errno));
return -1; return -1;
} }
@ -86,10 +89,10 @@ int verify_knownhost(ssh_session session){
break; break;
case SSH_SERVER_ERROR: case SSH_SERVER_ERROR:
free(hash); ssh_clean_pubkey_hash(&hash);
fprintf(stderr,"%s",ssh_get_error(session)); fprintf(stderr,"%s",ssh_get_error(session));
return -1; return -1;
} }
free(hash); ssh_clean_pubkey_hash(&hash);
return 0; return 0;
} }