diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2013-06-17 11:49:13 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2013-06-17 11:49:13 +0200 |
commit | 6f8b5ed679876427c4b2ff17b60a7fa3cbd02a54 (patch) | |
tree | 3b6c22fe20fbbf1728346f82ed3778d52677f2e7 /src/pki.c | |
parent | d255d1bf328d534bb5b7f5cbc8568448c726d563 (diff) | |
download | libssh-6f8b5ed679876427c4b2ff17b60a7fa3cbd02a54.tar.gz libssh-6f8b5ed679876427c4b2ff17b60a7fa3cbd02a54.tar.xz libssh-6f8b5ed679876427c4b2ff17b60a7fa3cbd02a54.zip |
pki: Fix a resource leak on error.
Diffstat (limited to 'src/pki.c')
-rw-r--r-- | src/pki.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -430,6 +430,7 @@ int ssh_pki_import_privkey_file(const char *filename, rc = fstat(fileno(file), &sb); if (rc < 0) { + fclose(file); ssh_pki_log("Error getting stat of %s: %s", filename, strerror(errno)); switch (errno) { @@ -813,6 +814,7 @@ int ssh_pki_import_pubkey_file(const char *filename, ssh_key *pkey) rc = fstat(fileno(file), &sb); if (rc < 0) { + fclose(file); ssh_pki_log("Error gettint stat of %s: %s", filename, strerror(errno)); switch (errno) { @@ -824,6 +826,7 @@ int ssh_pki_import_pubkey_file(const char *filename, ssh_key *pkey) } if (sb.st_size > MAX_PUBKEY_SIZE) { + fclose(file); return SSH_ERROR; } |