aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormilo <milo@r0ot.me>2011-04-18 17:49:54 +0200
committermilo <milo@r0ot.me>2011-04-18 17:49:54 +0200
commit91c9d86d4597ae5b3da40a33b1ba33c98066d573 (patch)
tree0f1ffc41b697badab41e98c486f817ddb599ff81
parent6e58342abcf2a884082f880f71ed11815fce48dd (diff)
downloadlibssh-91c9d86d4597ae5b3da40a33b1ba33c98066d573.tar.gz
libssh-91c9d86d4597ae5b3da40a33b1ba33c98066d573.tar.xz
libssh-91c9d86d4597ae5b3da40a33b1ba33c98066d573.zip
[keyfiles] Fix two memory leaks
-rw-r--r--src/keyfiles.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/keyfiles.c b/src/keyfiles.c
index d902835..923d6db 100644
--- a/src/keyfiles.c
+++ b/src/keyfiles.c
@@ -946,10 +946,12 @@ ssh_private_key privatekey_from_file(ssh_session session, const char *filename,
if (file == NULL) {
ssh_set_error(session, SSH_REQUEST_DENIED,
"Error opening %s: %s", filename, strerror(errno));
+ SAFE_FREE(key_buf);
return NULL;
}
size = fread(key_buf, 1, buf.st_size, file);
+ fclose(file);
if(size != buf.st_size) {
SAFE_FREE(key_buf);
ssh_set_error(session, SSH_FATAL,
@@ -957,7 +959,6 @@ ssh_private_key privatekey_from_file(ssh_session session, const char *filename,
return NULL;
}
- fclose(file);
privkey = privatekey_from_base64(session, key_buf, type, passphrase);