diff options
author | Anderson Toshiyuki Sasaki <ansasaki@redhat.com> | 2019-07-02 10:21:15 +0200 |
---|---|---|
committer | Anderson Toshiyuki Sasaki <ansasaki@redhat.com> | 2019-07-04 10:29:20 +0200 |
commit | fe248414fec1e654e4ee1259927d68777dd870ae (patch) | |
tree | 4950d193cbb883c50c8a23f5334d350ccda529b9 | |
parent | 8e42ed82201f4c42dcbc0726a2304d8ab69179dc (diff) | |
download | libssh-fe248414fec1e654e4ee1259927d68777dd870ae.tar.gz libssh-fe248414fec1e654e4ee1259927d68777dd870ae.tar.xz libssh-fe248414fec1e654e4ee1259927d68777dd870ae.zip |
knownhosts: Fix possible memory leak
The memory allocated for host_port can leak if the global knownhosts
file is unaccessible.
Found by address sanitizer build in CI.
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
-rw-r--r-- | src/knownhosts.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/knownhosts.c b/src/knownhosts.c index 8a4a8ba7..9383cc97 100644 --- a/src/knownhosts.c +++ b/src/knownhosts.c @@ -706,13 +706,15 @@ enum ssh_known_hosts_e ssh_session_has_known_hosts_entry(ssh_session session) rc = ssh_known_hosts_read_entries(host_port, session->opts.global_knownhosts, &entry_list); - SAFE_FREE(host_port); if (rc != 0) { + SAFE_FREE(host_port); ssh_list_free(entry_list); return SSH_KNOWN_HOSTS_ERROR; } } + SAFE_FREE(host_port); + if (ssh_list_count(entry_list) == 0) { ssh_list_free(entry_list); return SSH_KNOWN_HOSTS_UNKNOWN; |