Fix memory leak with client auth.
(cherry picked from commit bc5ec653ba65fedb1619c8182088497de8a97a70)
diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
index 6c988d1..31fc70e 100644
--- a/ssl/t1_lib.c
+++ b/ssl/t1_lib.c
@@ -3644,6 +3644,11 @@
 	TLS_SIGALGS *salgs = NULL;
 	CERT *c = s->cert;
 	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 (!s->server && c->client_sigalgs && !is_suiteb)
 		{
@@ -3700,6 +3705,8 @@
 	if (!c)
 		return 0;
 
+	if (c->peer_sigalgs)
+		OPENSSL_free(c->peer_sigalgs);
 	c->peer_sigalgs = OPENSSL_malloc(dsize);
 	if (!c->peer_sigalgs)
 		return 0;