diff options
author | tb <> | 2018-08-19 20:19:31 +0000 |
---|---|---|
committer | tb <> | 2018-08-19 20:19:31 +0000 |
commit | cf0213fb50b5345019d3a350151ac639711e40fe (patch) | |
tree | fb9e20d7ad5eddb694ccc3bf50e03f8b128a6b45 /src | |
parent | 1ac309e9818bd0d0d2295e3a06ee0b822a0b208c (diff) | |
download | openbsd-cf0213fb50b5345019d3a350151ac639711e40fe.tar.gz openbsd-cf0213fb50b5345019d3a350151ac639711e40fe.tar.bz2 openbsd-cf0213fb50b5345019d3a350151ac639711e40fe.zip |
Don't leak sktmp in X509_verify_cert().
CID #118791
ok jsing mestre
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/x509/x509_vfy.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/libcrypto/x509/x509_vfy.c b/src/lib/libcrypto/x509/x509_vfy.c index 9b4c06310a..e98272a6c3 100644 --- a/src/lib/libcrypto/x509/x509_vfy.c +++ b/src/lib/libcrypto/x509/x509_vfy.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: x509_vfy.c,v 1.70 2018/04/08 16:57:57 beck Exp $ */ | 1 | /* $OpenBSD: x509_vfy.c,v 1.71 2018/08/19 20:19:31 tb 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 | * |
@@ -496,9 +496,10 @@ X509_verify_cert(X509_STORE_CTX *ctx) | |||
496 | ctx->current_cert = x; | 496 | ctx->current_cert = x; |
497 | } else { | 497 | } else { |
498 | if (!sk_X509_push(ctx->chain, chain_ss)) { | 498 | if (!sk_X509_push(ctx->chain, chain_ss)) { |
499 | X509_free(chain_ss); | ||
500 | X509error(ERR_R_MALLOC_FAILURE); | 499 | X509error(ERR_R_MALLOC_FAILURE); |
501 | return 0; | 500 | ctx->error = X509_V_ERR_OUT_OF_MEM; |
501 | ok = 0; | ||
502 | goto end; | ||
502 | } | 503 | } |
503 | num++; | 504 | num++; |
504 | ctx->last_untrusted = num; | 505 | ctx->last_untrusted = num; |
@@ -548,8 +549,7 @@ X509_verify_cert(X509_STORE_CTX *ctx) | |||
548 | ok = ctx->check_policy(ctx); | 549 | ok = ctx->check_policy(ctx); |
549 | 550 | ||
550 | end: | 551 | end: |
551 | if (sktmp != NULL) | 552 | sk_X509_free(sktmp); |
552 | sk_X509_free(sktmp); | ||
553 | X509_free(chain_ss); | 553 | X509_free(chain_ss); |
554 | 554 | ||
555 | /* Safety net, error returns must set ctx->error */ | 555 | /* Safety net, error returns must set ctx->error */ |