- BIO *req_mem = HTTP_asn1_item2bio(ASN1_ITEM_rptr(OCSP_REQUEST),
- (ASN1_VALUE *)req);
- OSSL_HTTP_REQ_CTX *res =
- HTTP_REQ_CTX_new(io, io, 0 /* no HTTP proxy used */, NULL, NULL, path,
- NULL /* headers */, "application/ocsp-request",
- req_mem /* may be NULL */,
- maxline, 0 /* default max_resp_len */,
- 0 /* no timeout, blocking indefinite */, NULL,
- 1 /* expect_asn1 */);
- BIO_free(req_mem);
- return res;
+ OSSL_HTTP_REQ_CTX *rctx = NULL;
+
+ if ((rctx = OSSL_HTTP_REQ_CTX_new(io, io, 1 /* POST */,
+ maxline, 0 /* default max_resp_len */,
+ 0 /* no timeout, blocking indefinitely */,
+ NULL, 1 /* expect_asn1 */)) == NULL)
+ return NULL;
+
+ if (!OSSL_HTTP_REQ_CTX_set_request_line(rctx, NULL, NULL, path))
+ goto err;
+
+ if (req != NULL && !OSSL_HTTP_REQ_CTX_i2d(rctx, "application/ocsp-request",
+ ASN1_ITEM_rptr(OCSP_REQUEST),
+ (ASN1_VALUE *)req))
+ goto err;
+
+ return rctx;
+
+ err:
+ OSSL_HTTP_REQ_CTX_free(rctx);
+ return NULL;