Commit 46b3bd54 authored by Bodo Möller's avatar Bodo Möller
Browse files

Avoid memory leak.

parent 51175595
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -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 MS_CALLBACK *tmp_rsa_cb(SSL *s, int is_export, int keylength)
	{
static RSA *rsa_tmp=NULL;

static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int is_export, int keylength)
	{
	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