From: Azat Khuzhin Date: Thu, 25 Jun 2020 06:08:31 +0000 (+0300) Subject: Check error code of evhttp_add_header_internal() in evhttp_parse_query_impl() X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4528d8e98781be794cbce13394f8442dd466684b;p=libevent Check error code of evhttp_add_header_internal() in evhttp_parse_query_impl() --- diff --git a/http.c b/http.c index e8f78826..abd255dc 100644 --- a/http.c +++ b/http.c @@ -3524,6 +3524,7 @@ evhttp_parse_query_impl(const char *str, struct evkeyvalq *headers, p = argument = line; while (p != NULL && *p != '\0') { char *key, *value, *decoded_value; + int err; argument = strsep(&p, "&"); value = argument; @@ -3547,8 +3548,10 @@ evhttp_parse_query_impl(const char *str, struct evkeyvalq *headers, event_debug(("Query Param: %s -> %s\n", key, decoded_value)); if (flags & EVHTTP_URI_QUERY_LAST_VAL) evhttp_remove_header(headers, key); - evhttp_add_header_internal(headers, key, decoded_value); + err = evhttp_add_header_internal(headers, key, decoded_value); mm_free(decoded_value); + if (err) + goto error; } result = 0;