diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2019-06-12 10:17:26 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2019-06-12 10:17:54 +0200 |
commit | 1a3436d7d3ddd3d17efffe5938702aaf514c215a (patch) | |
tree | b9bf306a5bfc3cc4d978b065389a501857bab097 /src | |
parent | 77ada9e4dc8f784cba301dda8f196de9abc86942 (diff) | |
download | libssh-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.c | 4 |
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) { |