diff options
author | Alexey Fofanov <avoget@gmail.com> | 2023-10-25 14:29:06 +0300 |
---|---|---|
committer | Alexey Fofanov <avoget@gmail.com> | 2023-10-25 14:29:06 +0300 |
commit | f0d88b4d070426493749cfd6b657e42dc3c2f5dd (patch) | |
tree | 57ea22b702a4a7104e79d8477c9fe5242771f572 /crypto/http/http_client.c | |
parent | 6b7eed07cf519d68df040d9682598fd78395971d (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.c | 8 |
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; } |