aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}