aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2018-06-05 10:34:08 +0200
committerAndreas Schneider <asn@cryptomilk.org>2018-06-05 10:34:56 +0200
commit34e7a3cf8c630f78548b2230c4dca8f04b6b5c50 (patch)
tree3ef79d31aa3c58d0ec74f3bb47bf48413cfcfbd2
parent1001cbbb99984bb539979fdc7059d7923adae74d (diff)
downloadlibssh-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.c4
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;
}