Merge branch 'fix/return_esp_err_t_for_httpd_req_get_url_query_str' into 'master'

feat(https_server): Added checks to verify if uri is empty

Closes IDFGH-10685

See merge request espressif/esp-idf!36157
This commit is contained in:
Mahavir Jain 2025-01-08 13:35:49 +08:00
commit bbb8b849e2
2 changed files with 13 additions and 2 deletions

View File

@ -964,7 +964,7 @@ esp_err_t httpd_req_get_hdr_value_str(httpd_req_t *r, const char *field, char *v
*
* @return
* - Length : Query is found in the request URL
* - Zero : Query not found / Null arguments / Invalid request
* - Zero : Query not found / Null arguments / Invalid request / uri is empty
*/
size_t httpd_req_get_url_query_len(httpd_req_t *r);
@ -992,6 +992,7 @@ size_t httpd_req_get_url_query_len(httpd_req_t *r);
*
* @return
* - ESP_OK : Query is found in the request URL and copied to buffer
* - ESP_FAIL : uri is empty
* - ESP_ERR_NOT_FOUND : Query not found
* - ESP_ERR_INVALID_ARG : Null arguments
* - ESP_ERR_HTTPD_INVALID_REQ : Invalid HTTP request pointer

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2018-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2018-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -916,6 +916,11 @@ size_t httpd_req_get_url_query_len(httpd_req_t *r)
return 0;
}
if (r->uri[0] == '\0') {
ESP_LOGD(TAG, "uri is empty");
return 0;
}
struct httpd_req_aux *ra = r->aux;
struct http_parser_url *res = &ra->url_parse_res;
@ -936,6 +941,11 @@ esp_err_t httpd_req_get_url_query_str(httpd_req_t *r, char *buf, size_t buf_len)
return ESP_ERR_HTTPD_INVALID_REQ;
}
if (r->uri[0] == '\0') {
ESP_LOGD(TAG, "uri is empty");
return ESP_FAIL;
}
struct httpd_req_aux *ra = r->aux;
struct http_parser_url *res = &ra->url_parse_res;