From c8932aa94f8600cc6b11df1784f53e3ca6c2bdcc Mon Sep 17 00:00:00 2001 From: "Dr. David von Oheimb" Date: Wed, 15 Jan 2025 18:12:22 +0100 Subject: [PATCH] http_client.c: fix error and default case handling in OSSL_HTTP_REQ_CTX_nbio() state machine Reviewed-by: Dmitry Belyavskiy Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/25541) --- crypto/http/http_client.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crypto/http/http_client.c b/crypto/http/http_client.c index 95dabc8ec54..d3cc070d61c 100644 --- a/crypto/http/http_client.c +++ b/crypto/http/http_client.c @@ -603,6 +603,10 @@ int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx) } switch (rctx->state) { + case OHS_ERROR: + default: + return 0; + case OHS_ADD_HEADERS: /* Last operation was adding headers: need a final \r\n */ if (BIO_write(rctx->mem, "\r\n", 2) != 2) { @@ -683,9 +687,6 @@ int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx) rctx->state = OHS_ERROR; return 0; - case OHS_ERROR: - return 0; - /* State machine could be broken up at this point and bulky code sections factorized out. */ case OHS_FIRSTLINE: @@ -943,7 +944,6 @@ int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx) /* Fall thru */ case OHS_ASN1_CONTENT: - default: n = BIO_get_mem_data(rctx->mem, NULL); if (n < 0 || (size_t)n < rctx->resp_len) goto next_io; -- 2.47.2