diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2018-06-05 10:34:08 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-06-05 10:34:56 +0200 |
commit | 34e7a3cf8c630f78548b2230c4dca8f04b6b5c50 (patch) | |
tree | 3ef79d31aa3c58d0ec74f3bb47bf48413cfcfbd2 | |
parent | 1001cbbb99984bb539979fdc7059d7923adae74d (diff) | |
download | libssh-34e7a3cf8c630f78548b2230c4dca8f04b6b5c50.tar.gz libssh-34e7a3cf8c630f78548b2230c4dca8f04b6b5c50.tar.xz libssh-34e7a3cf8c630f78548b2230c4dca8f04b6b5c50.zip |
knownhosts: Fix resource leak in ssh_session_update_known_hosts()
CID 1391448
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
-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 3e16b7f5..7563d273 100644 --- a/src/knownhosts.c +++ b/src/knownhosts.c @@ -622,20 +622,22 @@ int ssh_session_update_known_hosts(ssh_session session) rc = ssh_session_export_known_hosts_entry(session, &entry); if (rc != SSH_OK) { + fclose(fp); return rc; } len = strlen(entry); nwritten = fwrite(entry, sizeof(char), len, fp); SAFE_FREE(entry); - fclose(fp); if (nwritten != len || ferror(fp)) { ssh_set_error(session, SSH_FATAL, "Couldn't append to known_hosts file %s: %s", session->opts.knownhosts, strerror(errno)); + fclose(fp); return SSH_ERROR; } + fclose(fp); return SSH_OK; } |