From: Bodo Möller Date: Thu, 6 Apr 2000 22:25:49 +0000 (+0000) Subject: Avoid memory leak. X-Git-Tag: OpenSSL_0_9_5~69 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=46b3bd54544caf828dcbcac093b5341c10802459;p=oweals%2Fopenssl.git Avoid memory leak. --- diff --git a/ssl/ssltest.c b/ssl/ssltest.c index dde35794f5..caf5876e5a 100644 --- a/ssl/ssltest.c +++ b/ssl/ssltest.c @@ -88,6 +88,7 @@ static int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx); #ifndef NO_RSA static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int is_export,int keylength); +static void free_tmp_rsa(void); #endif #ifndef NO_DH static DH *get_dh512(void); @@ -528,6 +529,9 @@ end: if (bio_stdout != NULL) BIO_free(bio_stdout); +#ifndef NO_RSA + free_tmp_rsa(); +#endif ERR_free_strings(); ERR_remove_state(0); EVP_cleanup(); @@ -1242,10 +1246,10 @@ static int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx) } #ifndef NO_RSA +static RSA *rsa_tmp=NULL; + static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int is_export, int keylength) { - static RSA *rsa_tmp=NULL; - if (rsa_tmp == NULL) { BIO_printf(bio_err,"Generating temp (%d bit) RSA key...",keylength); @@ -1256,6 +1260,15 @@ static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int is_export, int keylength) } return(rsa_tmp); } + +static void free_tmp_rsa(void) + { + if (rsa_tmp != NULL) + { + RSA_free(rsa_tmp); + rsa_tmp = NULL; + } + } #endif #ifndef NO_DH