diff options
Diffstat (limited to 'libssh/client.c')
-rw-r--r-- | libssh/client.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libssh/client.c b/libssh/client.c index 42b10414..1ca8952d 100644 --- a/libssh/client.c +++ b/libssh/client.c @@ -26,6 +26,7 @@ MA 02111-1307, USA. */ #include <netdb.h> #include "libssh/priv.h" #include "libssh/ssh2.h" +extern int connections; #define set_status(opt,status) do {\ if (opt->connect_status_function) \ @@ -277,6 +278,12 @@ void ssh_disconnect(SSH_SESSION *session){ } session->alive=0; ssh_cleanup(session); + if (!--connections) +#ifdef HAVE_LIBGCRYPT + gcry_control(GCRYCTL_TERM_SECMEM); +#elif defined HAVE_LIBCRYPTO + EVP_cleanup(); +#endif } const char *ssh_copyright(){ |