Skip to content

Commit 358d26c

Browse files
mdns: fix crash after init if no memory for task
mdns init first starts timer task, then starts service task. if service task failed to be created, timer task needs to be stopped too. fixed https://ezredmine.espressif.cn:8765/issues/28466 * Original commit: espressif/esp-idf@a47768d
1 parent 8d08e5e commit 358d26c

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

components/mdns/mdns.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3993,7 +3993,10 @@ static esp_err_t _mdns_service_task_start()
39933993
if (!_mdns_service_task_handle) {
39943994
xTaskCreatePinnedToCore(_mdns_service_task, "mdns", MDNS_SERVICE_STACK_DEPTH, NULL, 1, (TaskHandle_t * const)(&_mdns_service_task_handle), 0);
39953995
if (!_mdns_service_task_handle) {
3996+
_mdns_stop_timer();
39963997
MDNS_SERVICE_UNLOCK();
3998+
vSemaphoreDelete(_mdns_service_semaphore);
3999+
_mdns_service_semaphore = NULL;
39974000
return ESP_FAIL;
39984001
}
39994002
}
@@ -4012,6 +4015,8 @@ static esp_err_t _mdns_service_task_stop()
40124015
MDNS_SERVICE_LOCK();
40134016
_mdns_stop_timer();
40144017
MDNS_SERVICE_UNLOCK();
4018+
vSemaphoreDelete(_mdns_service_semaphore);
4019+
_mdns_service_semaphore = NULL;
40154020
if (_mdns_service_task_handle) {
40164021
mdns_action_t action;
40174022
mdns_action_t * a = &action;

0 commit comments

Comments
 (0)