diff options
author | Tomas Mraz <tomas@openssl.org> | 2021-10-22 09:38:18 +0200 |
---|---|---|
committer | Tomas Mraz <tomas@openssl.org> | 2021-10-25 11:43:33 +0200 |
commit | ea7a9084e4cb081240fab6fb4f2374b538dc14ec (patch) | |
tree | 0f200e12167924b1397943dd7943c3630f607784 /crypto/ocsp | |
parent | dd9add06e794ba5f54c68d0d98ea90b6ff3140f6 (diff) |
OCSP_sendreq_bio: Avoid doublefree of mem BIO
Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
(Merged from https://github.com/openssl/openssl/pull/16886)
(cherry picked from commit f99b34957f4173f68d6f19d0d9fac37d797b7e0c)
Diffstat (limited to 'crypto/ocsp')
-rw-r--r-- | crypto/ocsp/ocsp_http.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/crypto/ocsp/ocsp_http.c b/crypto/ocsp/ocsp_http.c index 28166d3a17..e8b6406d3c 100644 --- a/crypto/ocsp/ocsp_http.c +++ b/crypto/ocsp/ocsp_http.c @@ -58,13 +58,11 @@ OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req) if (ctx == NULL) return NULL; mem = OSSL_HTTP_REQ_CTX_exchange(ctx); - resp = (OCSP_RESPONSE *) - ASN1_item_d2i_bio(ASN1_ITEM_rptr(OCSP_RESPONSE), mem, NULL); - BIO_free(mem); + /* ASN1_item_d2i_bio handles NULL bio gracefully */ + resp = (OCSP_RESPONSE *)ASN1_item_d2i_bio(ASN1_ITEM_rptr(OCSP_RESPONSE), + mem, NULL); - /* this indirectly calls ERR_clear_error(): */ OSSL_HTTP_REQ_CTX_free(ctx); - return resp; } #endif /* !defined(OPENSSL_NO_OCSP) */ |