summaryrefslogtreecommitdiffstats
path: root/crypto/ocsp
diff options
context:
space:
mode:
authorTomas Mraz <tomas@openssl.org>2021-10-22 09:38:18 +0200
committerTomas Mraz <tomas@openssl.org>2021-10-25 11:43:33 +0200
commitea7a9084e4cb081240fab6fb4f2374b538dc14ec (patch)
tree0f200e12167924b1397943dd7943c3630f607784 /crypto/ocsp
parentdd9add06e794ba5f54c68d0d98ea90b6ff3140f6 (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.c8
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) */