diff options
author | tb <> | 2021-03-22 20:05:21 +0000 |
---|---|---|
committer | tb <> | 2021-03-22 20:05:21 +0000 |
commit | 5187230abb7f49869450f3a993b50b137bd3ddfe (patch) | |
tree | e930c773623c1093059a69f8b96b754b5711bf75 /src | |
parent | eca136386e46c2c7850825330ee8c19374d1fe58 (diff) | |
download | openbsd-5187230abb7f49869450f3a993b50b137bd3ddfe.tar.gz openbsd-5187230abb7f49869450f3a993b50b137bd3ddfe.tar.bz2 openbsd-5187230abb7f49869450f3a993b50b137bd3ddfe.zip |
Plug a few memory leaks reported by Ilya Shipitsin
Diffstat (limited to 'src')
-rw-r--r-- | src/regress/lib/libssl/asn1/asn1test.c | 16 |
1 files changed, 7 insertions, 9 deletions
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 @@ | |||
1 | /* $OpenBSD: asn1test.c,v 1.6 2016/12/26 15:31:38 jsing Exp $ */ | 1 | /* $OpenBSD: asn1test.c,v 1.7 2021/03/22 20:05:21 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014, 2016 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014, 2016 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -334,7 +334,7 @@ session_cmp(SSL_SESSION *s1, SSL_SESSION *s2) | |||
334 | fprintf(stderr, "peer differs\n"); | 334 | fprintf(stderr, "peer differs\n"); |
335 | return (1); | 335 | return (1); |
336 | } | 336 | } |
337 | 337 | ||
338 | if (s1->verify_result != s2->verify_result) { | 338 | if (s1->verify_result != s2->verify_result) { |
339 | fprintf(stderr, "verify_result differs: %li != %li\n", | 339 | fprintf(stderr, "verify_result differs: %li != %li\n", |
340 | s1->verify_result, s2->verify_result); | 340 | s1->verify_result, s2->verify_result); |
@@ -369,7 +369,7 @@ session_cmp(SSL_SESSION *s1, SSL_SESSION *s2) | |||
369 | static int | 369 | static int |
370 | do_ssl_asn1_test(int test_no, struct ssl_asn1_test *sat) | 370 | do_ssl_asn1_test(int test_no, struct ssl_asn1_test *sat) |
371 | { | 371 | { |
372 | SSL_SESSION session, *sp = NULL; | 372 | SSL_SESSION *sp = NULL; |
373 | unsigned char *ap, *asn1 = NULL; | 373 | unsigned char *ap, *asn1 = NULL; |
374 | const unsigned char *pp; | 374 | const unsigned char *pp; |
375 | int i, len, rv = 1; | 375 | int i, len, rv = 1; |
@@ -426,11 +426,9 @@ do_ssl_asn1_test(int test_no, struct ssl_asn1_test *sat) | |||
426 | goto failed; | 426 | goto failed; |
427 | } | 427 | } |
428 | 428 | ||
429 | sp = &session; | ||
430 | memset(sp, 0, sizeof(*sp)); | ||
431 | pp = sat->asn1; | 429 | pp = sat->asn1; |
432 | 430 | ||
433 | if ((sp = d2i_SSL_SESSION(&sp, &pp, sat->asn1_len)) == NULL) { | 431 | if ((sp = d2i_SSL_SESSION(NULL, &pp, sat->asn1_len)) == NULL) { |
434 | fprintf(stderr, "FAIL: test %i - decoding failed\n", test_no); | 432 | fprintf(stderr, "FAIL: test %i - decoding failed\n", test_no); |
435 | goto failed; | 433 | goto failed; |
436 | } | 434 | } |
@@ -442,9 +440,9 @@ do_ssl_asn1_test(int test_no, struct ssl_asn1_test *sat) | |||
442 | 440 | ||
443 | rv = 0; | 441 | rv = 0; |
444 | 442 | ||
445 | failed: | 443 | failed: |
446 | ERR_print_errors(BIO_new_fp(stderr, BIO_NOCLOSE)); | 444 | ERR_print_errors_fp(stderr); |
447 | 445 | SSL_SESSION_free(sp); | |
448 | free(asn1); | 446 | free(asn1); |
449 | 447 | ||
450 | return (rv); | 448 | return (rv); |