aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2019-06-12 10:17:26 +0200
committerAndreas Schneider <asn@cryptomilk.org>2019-06-12 10:17:54 +0200
commit1a3436d7d3ddd3d17efffe5938702aaf514c215a (patch)
treeb9bf306a5bfc3cc4d978b065389a501857bab097 /src
parent77ada9e4dc8f784cba301dda8f196de9abc86942 (diff)
downloadlibssh-1a3436d7d3ddd3d17efffe5938702aaf514c215a.tar.gz
libssh-1a3436d7d3ddd3d17efffe5938702aaf514c215a.tar.xz
libssh-1a3436d7d3ddd3d17efffe5938702aaf514c215a.zip
knownhosts: Fix use after free
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src')
-rw-r--r--src/knownhosts.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/knownhosts.c b/src/knownhosts.c
index c2189b13..249c9953 100644
--- a/src/knownhosts.c
+++ b/src/knownhosts.c
@@ -775,12 +775,14 @@ int ssh_session_update_known_hosts(ssh_session session)
} else {
rc = 0;
}
- SAFE_FREE(dir);
+
if (rc != 0) {
ssh_set_error(session, SSH_FATAL,
"Cannot create %s directory.", dir);
+ SAFE_FREE(dir);
return SSH_ERROR;
}
+ SAFE_FREE(dir);
fp = fopen(session->opts.knownhosts, "a");
if (fp == NULL) {