From: Alexey Fofanov Date: Wed, 25 Oct 2023 11:29:06 +0000 (+0300) Subject: return 0 if an error occurred X-Git-Tag: openssl-3.3.0-alpha1~775 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e2f69d435bdc263fa4c30ee77484a0d2f6a8ff46;p=thirdparty%2Fopenssl.git return 0 if an error occurred Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale Reviewed-by: Hugo Landau (Merged from https://github.com/openssl/openssl/pull/22504) (cherry picked from commit f0d88b4d070426493749cfd6b657e42dc3c2f5dd) --- diff --git a/crypto/http/http_client.c b/crypto/http/http_client.c index 474a6e59e3..acc32769a8 100644 --- a/crypto/http/http_client.c +++ b/crypto/http/http_client.c @@ -495,13 +495,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; }