Free alloc'd memory.
This commit is contained in:
parent
74e1f57a1d
commit
d2fd406c75
28
configure.ac
28
configure.ac
@ -111,6 +111,11 @@ AC_ARG_WITH(init_dir,
|
||||
AM_CONDITIONAL([ENABLE_INIT], [test "x${init_dir}" != "x"])
|
||||
AC_SUBST(init_dir)
|
||||
|
||||
AC_ARG_ENABLE(ssh_agent,
|
||||
[AS_HELP_STRING([--enable-ssh-agent],
|
||||
[enable built-in ssh-agent])
|
||||
],enable_ssh_agent=yes)
|
||||
|
||||
#
|
||||
# libssl
|
||||
#
|
||||
@ -570,17 +575,22 @@ then
|
||||
[], [have_ssh_agent=no],
|
||||
[[#include <libssh2.h>]])
|
||||
|
||||
AM_CONDITIONAL([ENABLE_SSH_AGENT], [test "x${have_ssh_agent}" = "xyes"])
|
||||
AM_CONDITIONAL([ENABLE_SSH_AGENT],
|
||||
[test "x${have_ssh_agent}" = "xyes" \
|
||||
-a "x${enable_ssh_agent}" = "xyes"])
|
||||
|
||||
if test "x${have_ssh_agent}" = "xno"
|
||||
if test "x${enable_ssh_agent}" = "xyes"
|
||||
then
|
||||
AC_MSG_WARN([
|
||||
--------------------------------------------
|
||||
No agent forwarding found in libssh2.
|
||||
Support for agent forwarding will not be built.
|
||||
--------------------------------------------])
|
||||
else
|
||||
AC_DEFINE([ENABLE_SSH_AGENT])
|
||||
if test "x${have_ssh_agent}" = "xno"
|
||||
then
|
||||
AC_MSG_ERROR([
|
||||
--------------------------------------------
|
||||
Agent forwarding support was requested but no such support was found
|
||||
in libssh2.
|
||||
--------------------------------------------])
|
||||
else
|
||||
AC_DEFINE([ENABLE_SSH_AGENT])
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
|
@ -235,6 +235,9 @@ static LIBSSH2_SESSION* __guac_ssh_create_session(guac_client* client) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Free addrinfo */
|
||||
freeaddrinfo(addresses);
|
||||
|
||||
/* Open SSH session */
|
||||
LIBSSH2_SESSION* session = libssh2_session_init_ex(NULL, NULL,
|
||||
NULL, client);
|
||||
|
@ -127,19 +127,29 @@ ssh_key* ssh_key_alloc(char* data, int length, char* passphrase) {
|
||||
}
|
||||
|
||||
/* Otherwise, unsupported type */
|
||||
else
|
||||
else {
|
||||
BIO_free(key_bio);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Copy private key to structure */
|
||||
key->private_key_length = length;
|
||||
key->private_key = malloc(length);
|
||||
memcpy(key->private_key, data, length);
|
||||
|
||||
BIO_free(key_bio);
|
||||
return key;
|
||||
|
||||
}
|
||||
|
||||
void ssh_key_free(ssh_key* key) {
|
||||
|
||||
/* Free key-specific data */
|
||||
if (key->type == SSH_KEY_RSA)
|
||||
RSA_free(key->rsa);
|
||||
else if (key->type == SSH_KEY_DSA)
|
||||
DSA_free(key->dsa);
|
||||
|
||||
free(key->public_key);
|
||||
free(key);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user