diff options
author | milo <milo@r0ot.me> | 2011-04-18 17:49:54 +0200 |
---|---|---|
committer | milo <milo@r0ot.me> | 2011-04-18 17:49:54 +0200 |
commit | 91c9d86d4597ae5b3da40a33b1ba33c98066d573 (patch) | |
tree | 0f1ffc41b697badab41e98c486f817ddb599ff81 | |
parent | 6e58342abcf2a884082f880f71ed11815fce48dd (diff) | |
download | libssh-91c9d86d4597ae5b3da40a33b1ba33c98066d573.tar.gz libssh-91c9d86d4597ae5b3da40a33b1ba33c98066d573.tar.xz libssh-91c9d86d4597ae5b3da40a33b1ba33c98066d573.zip |
[keyfiles] Fix two memory leaks
-rw-r--r-- | src/keyfiles.c | 3 |
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); |