mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
mdns: fixed crash on free undefined ptr after skipped strdup
Shortcircuit evaluation may cause skip of _mdns_strdup_check of any further question field, which after clear_rx_packet freed undefined memory. Fixes https://ezredmine.espressif.cn:8765/issues/28465
This commit is contained in:
parent
4725364e04
commit
e0a8044a16
@ -2590,7 +2590,7 @@ void mdns_parse_packet(mdns_rx_packet_t * packet)
|
|||||||
parsed_packet->discovery = true;
|
parsed_packet->discovery = true;
|
||||||
mdns_srv_item_t * a = _mdns_server->services;
|
mdns_srv_item_t * a = _mdns_server->services;
|
||||||
while (a) {
|
while (a) {
|
||||||
mdns_parsed_question_t * question = (mdns_parsed_question_t *)malloc(sizeof(mdns_parsed_question_t));
|
mdns_parsed_question_t * question = (mdns_parsed_question_t *)calloc(1, sizeof(mdns_parsed_question_t));
|
||||||
if (!question) {
|
if (!question) {
|
||||||
HOOK_MALLOC_FAILED;
|
HOOK_MALLOC_FAILED;
|
||||||
goto clear_rx_packet;
|
goto clear_rx_packet;
|
||||||
@ -2618,7 +2618,7 @@ void mdns_parse_packet(mdns_rx_packet_t * packet)
|
|||||||
parsed_packet->probe = true;
|
parsed_packet->probe = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
mdns_parsed_question_t * question = (mdns_parsed_question_t *)malloc(sizeof(mdns_parsed_question_t));
|
mdns_parsed_question_t * question = (mdns_parsed_question_t *)calloc(1, sizeof(mdns_parsed_question_t));
|
||||||
if (!question) {
|
if (!question) {
|
||||||
HOOK_MALLOC_FAILED;
|
HOOK_MALLOC_FAILED;
|
||||||
goto clear_rx_packet;
|
goto clear_rx_packet;
|
||||||
|
Loading…
Reference in New Issue
Block a user