mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-29 18:27:29 +02:00
clean up memory after test and don't leak x509 with get session peer
This commit is contained in:
committed by
Eric Blankenhorn
parent
258382048d
commit
76eec8884b
16
src/ssl.c
16
src/ssl.c
@ -13468,9 +13468,14 @@ WOLFSSL_X509* wolfSSL_SESSION_get0_peer(WOLFSSL_SESSION* session)
|
||||
WOLFSSL_MSG("bad count found");
|
||||
return NULL;
|
||||
}
|
||||
return wolfSSL_get_chain_X509(&session->chain, 0);
|
||||
|
||||
if (session->peer == NULL) {
|
||||
session->peer = wolfSSL_get_chain_X509(&session->chain, 0);
|
||||
}
|
||||
return session->peer;
|
||||
}
|
||||
WOLFSSL_MSG("No session passed in");
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -21638,6 +21643,9 @@ WOLFSSL_SESSION* wolfSSL_SESSION_dup(WOLFSSL_SESSION* session)
|
||||
} else {
|
||||
copy->ticket = copy->staticTicket;
|
||||
}
|
||||
#endif
|
||||
#if defined(SESSION_CERTS) && defined(OPENSSL_EXTRA)
|
||||
copy->peer = wolfSSL_X509_dup(session->peer);
|
||||
#endif
|
||||
}
|
||||
return copy;
|
||||
@ -21654,6 +21662,12 @@ void wolfSSL_SESSION_free(WOLFSSL_SESSION* session)
|
||||
if (session == NULL)
|
||||
return;
|
||||
|
||||
#if defined(SESSION_CERTS) && defined(OPENSSL_EXTRA)
|
||||
if (session->peer) {
|
||||
wolfSSL_X509_free(session->peer);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EXT_CACHE
|
||||
if (session->isAlloced) {
|
||||
#ifdef HAVE_SESSION_TICKET
|
||||
|
@ -23993,7 +23993,7 @@ static void test_wolfSSL_BIO_should_retry(void)
|
||||
wolfSSL_SSLSetIORecv(ssl, forceWantRead);
|
||||
|
||||
AssertNotNull(bio = BIO_new(BIO_f_ssl()));
|
||||
BIO_set_ssl(bio, ssl, BIO_NOCLOSE);
|
||||
BIO_set_ssl(bio, ssl, BIO_CLOSE);
|
||||
|
||||
AssertIntLE(BIO_write(bio, msg, msgSz), 0);
|
||||
AssertIntNE(BIO_should_retry(bio), 0);
|
||||
@ -24013,6 +24013,7 @@ static void test_wolfSSL_BIO_should_retry(void)
|
||||
AssertIntEQ(XMEMCMP(reply, "I hear you fa shizzle!",
|
||||
XSTRLEN("I hear you fa shizzle!")), 0);
|
||||
BIO_free(bio);
|
||||
wolfSSL_CTX_free(ctx);
|
||||
|
||||
join_thread(serverThread);
|
||||
FreeTcpReady(&ready);
|
||||
@ -24217,6 +24218,7 @@ static void test_wolfSSL_BIO_f_md(void)
|
||||
|
||||
AssertIntEQ(XMEMCMP(check, testResult, sizeof(testResult)), 0);
|
||||
|
||||
EVP_PKEY_free(key);
|
||||
BIO_free(bio);
|
||||
BIO_free(mem);
|
||||
|
||||
|
@ -3076,6 +3076,9 @@ struct WOLFSSL_SESSION {
|
||||
byte masterSecret[SECRET_LEN]; /* stored secret */
|
||||
word16 haveEMS; /* ext master secret flag */
|
||||
#ifdef SESSION_CERTS
|
||||
#ifdef OPENSSL_EXTRA
|
||||
WOLFSSL_X509* peer; /* peer cert */
|
||||
#endif
|
||||
WOLFSSL_X509_CHAIN chain; /* peer cert chain, static */
|
||||
#ifdef WOLFSSL_ALT_CERT_CHAINS
|
||||
WOLFSSL_X509_CHAIN altChain; /* peer alt cert chain, static */
|
||||
|
Reference in New Issue
Block a user