From 5187230abb7f49869450f3a993b50b137bd3ddfe Mon Sep 17 00:00:00 2001
From: tb <>
Date: Mon, 22 Mar 2021 20:05:21 +0000
Subject: Plug a few memory leaks reported by Ilya Shipitsin

---
 src/regress/lib/libssl/asn1/asn1test.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

(limited to 'src')

diff --git a/src/regress/lib/libssl/asn1/asn1test.c b/src/regress/lib/libssl/asn1/asn1test.c
index 69be086724..13f3d10673 100644
--- a/src/regress/lib/libssl/asn1/asn1test.c
+++ b/src/regress/lib/libssl/asn1/asn1test.c
@@ -1,4 +1,4 @@
-/*	$OpenBSD: asn1test.c,v 1.6 2016/12/26 15:31:38 jsing Exp $	*/
+/*	$OpenBSD: asn1test.c,v 1.7 2021/03/22 20:05:21 tb Exp $	*/
 /*
  * Copyright (c) 2014, 2016 Joel Sing <jsing@openbsd.org>
  *
@@ -334,7 +334,7 @@ session_cmp(SSL_SESSION *s1, SSL_SESSION *s2)
 		fprintf(stderr, "peer differs\n");
 		return (1);
 	}
-	
+
 	if (s1->verify_result != s2->verify_result) {
 		fprintf(stderr, "verify_result differs: %li != %li\n",
 		    s1->verify_result, s2->verify_result);
@@ -369,7 +369,7 @@ session_cmp(SSL_SESSION *s1, SSL_SESSION *s2)
 static int
 do_ssl_asn1_test(int test_no, struct ssl_asn1_test *sat)
 {
-	SSL_SESSION session, *sp = NULL;
+	SSL_SESSION *sp = NULL;
 	unsigned char *ap, *asn1 = NULL;
 	const unsigned char *pp;
 	int i, len, rv = 1;
@@ -426,11 +426,9 @@ do_ssl_asn1_test(int test_no, struct ssl_asn1_test *sat)
 		goto failed;
 	}
 
-	sp = &session;
-	memset(sp, 0, sizeof(*sp));
 	pp = sat->asn1;
 
-	if ((sp = d2i_SSL_SESSION(&sp, &pp, sat->asn1_len)) == NULL) {
+	if ((sp = d2i_SSL_SESSION(NULL, &pp, sat->asn1_len)) == NULL) {
 		fprintf(stderr, "FAIL: test %i - decoding failed\n", test_no);
 		goto failed;
 	}
@@ -442,9 +440,9 @@ do_ssl_asn1_test(int test_no, struct ssl_asn1_test *sat)
 
 	rv = 0;
 
-failed:
-	ERR_print_errors(BIO_new_fp(stderr, BIO_NOCLOSE));
-
+ failed:
+	ERR_print_errors_fp(stderr);
+	SSL_SESSION_free(sp);
 	free(asn1);
 
 	return (rv);
-- 
cgit v1.2.3-55-g6feb