Fix memory leak with client auth.
(cherry picked from commit bc5ec653ba65fedb1619c8182088497de8a97a70)
This commit is contained in:
parent
f0ef019da2
commit
4563da1d7c
@ -3644,6 +3644,11 @@ static int tls1_set_shared_sigalgs(SSL *s)
|
|||||||
TLS_SIGALGS *salgs = NULL;
|
TLS_SIGALGS *salgs = NULL;
|
||||||
CERT *c = s->cert;
|
CERT *c = s->cert;
|
||||||
unsigned int is_suiteb = tls1_suiteb(s);
|
unsigned int is_suiteb = tls1_suiteb(s);
|
||||||
|
if (c->shared_sigalgs)
|
||||||
|
{
|
||||||
|
OPENSSL_free(c->shared_sigalgs);
|
||||||
|
c->shared_sigalgs = NULL;
|
||||||
|
}
|
||||||
/* If client use client signature algorithms if not NULL */
|
/* If client use client signature algorithms if not NULL */
|
||||||
if (!s->server && c->client_sigalgs && !is_suiteb)
|
if (!s->server && c->client_sigalgs && !is_suiteb)
|
||||||
{
|
{
|
||||||
@ -3700,6 +3705,8 @@ int tls1_process_sigalgs(SSL *s, const unsigned char *data, int dsize)
|
|||||||
if (!c)
|
if (!c)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (c->peer_sigalgs)
|
||||||
|
OPENSSL_free(c->peer_sigalgs);
|
||||||
c->peer_sigalgs = OPENSSL_malloc(dsize);
|
c->peer_sigalgs = OPENSSL_malloc(dsize);
|
||||||
if (!c->peer_sigalgs)
|
if (!c->peer_sigalgs)
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user