mdns: fix crash after init if no memory for task
authorDavid Cermak <cermak@espressif.com>
Fri, 25 Jan 2019 15:17:07 +0000 (16:17 +0100)
committerDavid Cermak <cermak@espressif.com>
Thu, 21 Mar 2019 13:49:39 +0000 (14:49 +0100)
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

components/mdns/mdns.c

index cf9d0c23a861e231d4579a3c77d2ceafbe5b3faf..a06e048d99840721951f0586d24b0b62d854f23b 100644 (file)
@@ -4041,7 +4041,10 @@ static esp_err_t _mdns_service_task_start()
     if (!_mdns_service_task_handle) {
         xTaskCreatePinnedToCore(_mdns_service_task, "mdns", MDNS_SERVICE_STACK_DEPTH, NULL, 1, (TaskHandle_t * const)(&_mdns_service_task_handle), 0);
         if (!_mdns_service_task_handle) {
+            _mdns_stop_timer();
             MDNS_SERVICE_UNLOCK();
+            vSemaphoreDelete(_mdns_service_semaphore);
+            _mdns_service_semaphore = NULL;
             return ESP_FAIL;
         }
     }