aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnderson Toshiyuki Sasaki <ansasaki@redhat.com>2019-07-02 10:21:15 +0200
committerAnderson Toshiyuki Sasaki <ansasaki@redhat.com>2019-07-04 10:29:20 +0200
commitfe248414fec1e654e4ee1259927d68777dd870ae (patch)
tree4950d193cbb883c50c8a23f5334d350ccda529b9
parent8e42ed82201f4c42dcbc0726a2304d8ab69179dc (diff)
downloadlibssh-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.c4
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;