diff options
author | jsing <> | 2017-01-24 14:57:31 +0000 |
---|---|---|
committer | jsing <> | 2017-01-24 14:57:31 +0000 |
commit | 77a92585c62f2350be59692b9661aa7682960754 (patch) | |
tree | 011d7c934d9ef4ec841c1eca72c4ea94099316ff /src | |
parent | 72a17d80e1722d32d76a5acd4cf46bbc3a05f610 (diff) | |
download | openbsd-77a92585c62f2350be59692b9661aa7682960754.tar.gz openbsd-77a92585c62f2350be59692b9661aa7682960754.tar.bz2 openbsd-77a92585c62f2350be59692b9661aa7682960754.zip |
sk_pop_free() checks for NULL so do not bother doing it from the callers.
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libssl/s3_clnt.c | 8 | ||||
-rw-r--r-- | src/lib/libssl/s3_lib.c | 14 | ||||
-rw-r--r-- | src/lib/libssl/s3_srvr.c | 9 | ||||
-rw-r--r-- | src/lib/libssl/ssl_cert.c | 13 | ||||
-rw-r--r-- | src/lib/libssl/ssl_lib.c | 21 | ||||
-rw-r--r-- | src/lib/libssl/ssl_rsa.c | 8 | ||||
-rw-r--r-- | src/lib/libssl/t1_lib.c | 8 |
7 files changed, 31 insertions, 50 deletions
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c index e8cc0e3905..e44a025e57 100644 --- a/src/lib/libssl/s3_clnt.c +++ b/src/lib/libssl/s3_clnt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: s3_clnt.c,v 1.171 2017/01/24 01:39:13 jsing Exp $ */ | 1 | /* $OpenBSD: s3_clnt.c,v 1.172 2017/01/24 14:57:31 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -1723,8 +1723,7 @@ ssl3_get_certificate_request(SSL *s) | |||
1723 | /* we should setup a certificate to return.... */ | 1723 | /* we should setup a certificate to return.... */ |
1724 | S3I(s)->tmp.cert_req = 1; | 1724 | S3I(s)->tmp.cert_req = 1; |
1725 | S3I(s)->tmp.ctype_num = ctype_num; | 1725 | S3I(s)->tmp.ctype_num = ctype_num; |
1726 | if (S3I(s)->tmp.ca_names != NULL) | 1726 | sk_X509_NAME_pop_free(S3I(s)->tmp.ca_names, X509_NAME_free); |
1727 | sk_X509_NAME_pop_free(S3I(s)->tmp.ca_names, X509_NAME_free); | ||
1728 | S3I(s)->tmp.ca_names = ca_sk; | 1727 | S3I(s)->tmp.ca_names = ca_sk; |
1729 | ca_sk = NULL; | 1728 | ca_sk = NULL; |
1730 | 1729 | ||
@@ -1736,8 +1735,7 @@ truncated: | |||
1736 | } | 1735 | } |
1737 | err: | 1736 | err: |
1738 | X509_NAME_free(xn); | 1737 | X509_NAME_free(xn); |
1739 | if (ca_sk != NULL) | 1738 | sk_X509_NAME_pop_free(ca_sk, X509_NAME_free); |
1740 | sk_X509_NAME_pop_free(ca_sk, X509_NAME_free); | ||
1741 | return (ret); | 1739 | return (ret); |
1742 | } | 1740 | } |
1743 | 1741 | ||
diff --git a/src/lib/libssl/s3_lib.c b/src/lib/libssl/s3_lib.c index 9d0217e95f..977c170403 100644 --- a/src/lib/libssl/s3_lib.c +++ b/src/lib/libssl/s3_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: s3_lib.c,v 1.130 2017/01/24 09:03:21 jsing Exp $ */ | 1 | /* $OpenBSD: s3_lib.c,v 1.131 2017/01/24 14:57:31 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -1838,8 +1838,7 @@ ssl3_free(SSL *s) | |||
1838 | explicit_bzero(S3I(s)->tmp.x25519, X25519_KEY_LENGTH); | 1838 | explicit_bzero(S3I(s)->tmp.x25519, X25519_KEY_LENGTH); |
1839 | free(S3I(s)->tmp.x25519); | 1839 | free(S3I(s)->tmp.x25519); |
1840 | 1840 | ||
1841 | if (S3I(s)->tmp.ca_names != NULL) | 1841 | sk_X509_NAME_pop_free(S3I(s)->tmp.ca_names, X509_NAME_free); |
1842 | sk_X509_NAME_pop_free(S3I(s)->tmp.ca_names, X509_NAME_free); | ||
1843 | BIO_free(S3I(s)->handshake_buffer); | 1842 | BIO_free(S3I(s)->handshake_buffer); |
1844 | tls1_free_digest_list(s); | 1843 | tls1_free_digest_list(s); |
1845 | free(S3I(s)->alpn_selected); | 1844 | free(S3I(s)->alpn_selected); |
@@ -1861,8 +1860,7 @@ ssl3_clear(SSL *s) | |||
1861 | size_t rlen, wlen; | 1860 | size_t rlen, wlen; |
1862 | 1861 | ||
1863 | tls1_cleanup_key_block(s); | 1862 | tls1_cleanup_key_block(s); |
1864 | if (S3I(s)->tmp.ca_names != NULL) | 1863 | sk_X509_NAME_pop_free(S3I(s)->tmp.ca_names, X509_NAME_free); |
1865 | sk_X509_NAME_pop_free(S3I(s)->tmp.ca_names, X509_NAME_free); | ||
1866 | 1864 | ||
1867 | DH_free(S3I(s)->tmp.dh); | 1865 | DH_free(S3I(s)->tmp.dh); |
1868 | S3I(s)->tmp.dh = NULL; | 1866 | S3I(s)->tmp.dh = NULL; |
@@ -2330,10 +2328,8 @@ ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) | |||
2330 | break; | 2328 | break; |
2331 | 2329 | ||
2332 | case SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS: | 2330 | case SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS: |
2333 | if (ctx->extra_certs) { | 2331 | sk_X509_pop_free(ctx->extra_certs, X509_free); |
2334 | sk_X509_pop_free(ctx->extra_certs, X509_free); | 2332 | ctx->extra_certs = NULL; |
2335 | ctx->extra_certs = NULL; | ||
2336 | } | ||
2337 | break; | 2333 | break; |
2338 | 2334 | ||
2339 | default: | 2335 | default: |
diff --git a/src/lib/libssl/s3_srvr.c b/src/lib/libssl/s3_srvr.c index 3709587742..c6d340026a 100644 --- a/src/lib/libssl/s3_srvr.c +++ b/src/lib/libssl/s3_srvr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: s3_srvr.c,v 1.152 2017/01/24 12:22:23 jsing Exp $ */ | 1 | /* $OpenBSD: s3_srvr.c,v 1.153 2017/01/24 14:57:31 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -2595,8 +2595,7 @@ ssl3_get_client_certificate(SSL *s) | |||
2595 | goto err; | 2595 | goto err; |
2596 | } | 2596 | } |
2597 | } | 2597 | } |
2598 | if (SSI(s)->sess_cert->cert_chain != NULL) | 2598 | sk_X509_pop_free(SSI(s)->sess_cert->cert_chain, X509_free); |
2599 | sk_X509_pop_free(SSI(s)->sess_cert->cert_chain, X509_free); | ||
2600 | SSI(s)->sess_cert->cert_chain = sk; | 2599 | SSI(s)->sess_cert->cert_chain = sk; |
2601 | 2600 | ||
2602 | /* | 2601 | /* |
@@ -2617,8 +2616,8 @@ f_err: | |||
2617 | } | 2616 | } |
2618 | err: | 2617 | err: |
2619 | X509_free(x); | 2618 | X509_free(x); |
2620 | if (sk != NULL) | 2619 | sk_X509_pop_free(sk, X509_free); |
2621 | sk_X509_pop_free(sk, X509_free); | 2620 | |
2622 | return (ret); | 2621 | return (ret); |
2623 | } | 2622 | } |
2624 | 2623 | ||
diff --git a/src/lib/libssl/ssl_cert.c b/src/lib/libssl/ssl_cert.c index c23e789bf8..9ce8585d46 100644 --- a/src/lib/libssl/ssl_cert.c +++ b/src/lib/libssl/ssl_cert.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_cert.c,v 1.58 2017/01/23 06:45:30 beck Exp $ */ | 1 | /* $OpenBSD: ssl_cert.c,v 1.59 2017/01/24 14:57:31 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -395,9 +395,7 @@ ssl_sess_cert_free(SESS_CERT *sc) | |||
395 | if (i > 0) | 395 | if (i > 0) |
396 | return; | 396 | return; |
397 | 397 | ||
398 | /* i == 0 */ | 398 | sk_X509_pop_free(sc->cert_chain, X509_free); |
399 | if (sc->cert_chain != NULL) | ||
400 | sk_X509_pop_free(sc->cert_chain, X509_free); | ||
401 | for (i = 0; i < SSL_PKEY_NUM; i++) | 399 | for (i = 0; i < SSL_PKEY_NUM; i++) |
402 | X509_free(sc->peer_pkeys[i].x509); | 400 | X509_free(sc->peer_pkeys[i].x509); |
403 | 401 | ||
@@ -459,9 +457,7 @@ static void | |||
459 | set_client_CA_list(STACK_OF(X509_NAME) **ca_list, | 457 | set_client_CA_list(STACK_OF(X509_NAME) **ca_list, |
460 | STACK_OF(X509_NAME) *name_list) | 458 | STACK_OF(X509_NAME) *name_list) |
461 | { | 459 | { |
462 | if (*ca_list != NULL) | 460 | sk_X509_NAME_pop_free(*ca_list, X509_NAME_free); |
463 | sk_X509_NAME_pop_free(*ca_list, X509_NAME_free); | ||
464 | |||
465 | *ca_list = name_list; | 461 | *ca_list = name_list; |
466 | } | 462 | } |
467 | 463 | ||
@@ -611,8 +607,7 @@ SSL_load_client_CA_file(const char *file) | |||
611 | 607 | ||
612 | if (0) { | 608 | if (0) { |
613 | err: | 609 | err: |
614 | if (ret != NULL) | 610 | sk_X509_NAME_pop_free(ret, X509_NAME_free); |
615 | sk_X509_NAME_pop_free(ret, X509_NAME_free); | ||
616 | ret = NULL; | 611 | ret = NULL; |
617 | } | 612 | } |
618 | if (sk != NULL) | 613 | if (sk != NULL) |
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index 21d2d231d1..bdf6bc6ee3 100644 --- a/src/lib/libssl/ssl_lib.c +++ b/src/lib/libssl/ssl_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_lib.c,v 1.146 2017/01/24 13:34:26 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.147 2017/01/24 14:57:31 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -561,17 +561,16 @@ SSL_free(SSL *s) | |||
561 | 561 | ||
562 | free(s->tlsext_hostname); | 562 | free(s->tlsext_hostname); |
563 | SSL_CTX_free(s->initial_ctx); | 563 | SSL_CTX_free(s->initial_ctx); |
564 | |||
564 | free(s->internal->tlsext_ecpointformatlist); | 565 | free(s->internal->tlsext_ecpointformatlist); |
565 | free(s->internal->tlsext_supportedgroups); | 566 | free(s->internal->tlsext_supportedgroups); |
566 | if (s->internal->tlsext_ocsp_exts) | 567 | |
567 | sk_X509_EXTENSION_pop_free(s->internal->tlsext_ocsp_exts, | 568 | sk_X509_EXTENSION_pop_free(s->internal->tlsext_ocsp_exts, |
568 | X509_EXTENSION_free); | 569 | X509_EXTENSION_free); |
569 | if (s->internal->tlsext_ocsp_ids) | 570 | sk_OCSP_RESPID_pop_free(s->internal->tlsext_ocsp_ids, OCSP_RESPID_free); |
570 | sk_OCSP_RESPID_pop_free(s->internal->tlsext_ocsp_ids, OCSP_RESPID_free); | ||
571 | free(s->internal->tlsext_ocsp_resp); | 571 | free(s->internal->tlsext_ocsp_resp); |
572 | 572 | ||
573 | if (s->internal->client_CA != NULL) | 573 | sk_X509_NAME_pop_free(s->internal->client_CA, X509_NAME_free); |
574 | sk_X509_NAME_pop_free(s->internal->client_CA, X509_NAME_free); | ||
575 | 574 | ||
576 | if (s->method != NULL) | 575 | if (s->method != NULL) |
577 | s->method->internal->ssl_free(s); | 576 | s->method->internal->ssl_free(s); |
@@ -2011,10 +2010,8 @@ SSL_CTX_free(SSL_CTX *ctx) | |||
2011 | sk_SSL_CIPHER_free(ctx->cipher_list); | 2010 | sk_SSL_CIPHER_free(ctx->cipher_list); |
2012 | sk_SSL_CIPHER_free(ctx->internal->cipher_list_by_id); | 2011 | sk_SSL_CIPHER_free(ctx->internal->cipher_list_by_id); |
2013 | ssl_cert_free(ctx->internal->cert); | 2012 | ssl_cert_free(ctx->internal->cert); |
2014 | if (ctx->internal->client_CA != NULL) | 2013 | sk_X509_NAME_pop_free(ctx->internal->client_CA, X509_NAME_free); |
2015 | sk_X509_NAME_pop_free(ctx->internal->client_CA, X509_NAME_free); | 2014 | sk_X509_pop_free(ctx->extra_certs, X509_free); |
2016 | if (ctx->extra_certs != NULL) | ||
2017 | sk_X509_pop_free(ctx->extra_certs, X509_free); | ||
2018 | 2015 | ||
2019 | #ifndef OPENSSL_NO_SRTP | 2016 | #ifndef OPENSSL_NO_SRTP |
2020 | if (ctx->internal->srtp_profiles) | 2017 | if (ctx->internal->srtp_profiles) |
diff --git a/src/lib/libssl/ssl_rsa.c b/src/lib/libssl/ssl_rsa.c index 82c8cc0a87..03eedc0d8a 100644 --- a/src/lib/libssl/ssl_rsa.c +++ b/src/lib/libssl/ssl_rsa.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_rsa.c,v 1.24 2017/01/23 22:34:38 beck Exp $ */ | 1 | /* $OpenBSD: ssl_rsa.c,v 1.25 2017/01/24 14:57:31 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -671,10 +671,8 @@ ssl_ctx_use_certificate_chain_bio(SSL_CTX *ctx, BIO *in) | |||
671 | int r; | 671 | int r; |
672 | unsigned long err; | 672 | unsigned long err; |
673 | 673 | ||
674 | if (ctx->extra_certs != NULL) { | 674 | sk_X509_pop_free(ctx->extra_certs, X509_free); |
675 | sk_X509_pop_free(ctx->extra_certs, X509_free); | 675 | ctx->extra_certs = NULL; |
676 | ctx->extra_certs = NULL; | ||
677 | } | ||
678 | 676 | ||
679 | while ((ca = PEM_read_bio_X509(in, NULL, | 677 | while ((ca = PEM_read_bio_X509(in, NULL, |
680 | ctx->default_passwd_callback, | 678 | ctx->default_passwd_callback, |
diff --git a/src/lib/libssl/t1_lib.c b/src/lib/libssl/t1_lib.c index 23e1a2d350..9b60d664e5 100644 --- a/src/lib/libssl/t1_lib.c +++ b/src/lib/libssl/t1_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: t1_lib.c,v 1.110 2017/01/24 12:24:07 jsing Exp $ */ | 1 | /* $OpenBSD: t1_lib.c,v 1.111 2017/01/24 14:57:31 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -1593,10 +1593,8 @@ ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, | |||
1593 | } | 1593 | } |
1594 | sdata = data; | 1594 | sdata = data; |
1595 | if (dsize > 0) { | 1595 | if (dsize > 0) { |
1596 | if (s->internal->tlsext_ocsp_exts) { | 1596 | sk_X509_EXTENSION_pop_free(s->internal->tlsext_ocsp_exts, |
1597 | sk_X509_EXTENSION_pop_free(s->internal->tlsext_ocsp_exts, | 1597 | X509_EXTENSION_free); |
1598 | X509_EXTENSION_free); | ||
1599 | } | ||
1600 | 1598 | ||
1601 | s->internal->tlsext_ocsp_exts = | 1599 | s->internal->tlsext_ocsp_exts = |
1602 | d2i_X509_EXTENSIONS(NULL, | 1600 | d2i_X509_EXTENSIONS(NULL, |