summaryrefslogtreecommitdiffstats
path: root/crypto/http/http_client.c
diff options
context:
space:
mode:
authorAlexey Fofanov <avoget@gmail.com>2023-10-25 14:29:06 +0300
committerAlexey Fofanov <avoget@gmail.com>2023-10-25 14:29:06 +0300
commitf0d88b4d070426493749cfd6b657e42dc3c2f5dd (patch)
tree57ea22b702a4a7104e79d8477c9fe5242771f572 /crypto/http/http_client.c
parent6b7eed07cf519d68df040d9682598fd78395971d (diff)
return 0 if an error occurred
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/22504)
Diffstat (limited to 'crypto/http/http_client.c')
-rw-r--r--crypto/http/http_client.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/crypto/http/http_client.c b/crypto/http/http_client.c
index e3ccc6c4cc..4b96a6b9e9 100644
--- a/crypto/http/http_client.c
+++ b/crypto/http/http_client.c
@@ -487,13 +487,17 @@ static int parse_http_line1(char *line, int *found_keep_alive)
static int check_set_resp_len(OSSL_HTTP_REQ_CTX *rctx, size_t len)
{
- if (rctx->max_resp_len != 0 && len > rctx->max_resp_len)
+ if (rctx->max_resp_len != 0 && len > rctx->max_resp_len) {
ERR_raise_data(ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED,
"length=%zu, max=%zu", len, rctx->max_resp_len);
- if (rctx->resp_len != 0 && rctx->resp_len != len)
+ return 0;
+ }
+ if (rctx->resp_len != 0 && rctx->resp_len != len) {
ERR_raise_data(ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH,
"ASN.1 length=%zu, Content-Length=%zu",
len, rctx->resp_len);
+ return 0;
+ }
rctx->resp_len = len;
return 1;
}