http_client.c: check expected content type only if HTTP status code is 200 (OK)
authorDr. David von Oheimb <David.von.Oheimb@siemens.com>
Thu, 28 Apr 2022 13:35:13 +0000 (15:35 +0200)
committerDr. David von Oheimb <dev@ddvo.net>
Mon, 2 May 2022 06:22:31 +0000 (08:22 +0200)
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
(Merged from https://github.com/openssl/openssl/pull/18204)

crypto/http/http_client.c

index 8fcc9c3445e999cf216a7beb96bd6ff24af25171..088b6cd664e69e0d01acfda83678d2034936a5fb 100644 (file)
@@ -669,7 +669,7 @@ int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx)
                 rctx->redirection_url = value;
                 return 0;
             }
-            if (rctx->expected_ct != NULL
+            if (rctx->state == OHS_HEADERS && rctx->expected_ct != NULL
                     && OPENSSL_strcasecmp(key, "Content-Type") == 0) {
                 if (OPENSSL_strcasecmp(rctx->expected_ct, value) != 0) {
                     ERR_raise_data(ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE,