From dc1a635a97bbbebd74d965447384c20d34d08526 Mon Sep 17 00:00:00 2001 From: Piyush Shah Date: Mon, 30 Mar 2020 19:58:43 +0530 Subject: [PATCH] esp_mqtt_abort_connection: Fixed an issue which could result in a race condition and subsequent crash --- mqtt_client.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mqtt_client.c b/mqtt_client.c index 9372512..3186618 100644 --- a/mqtt_client.c +++ b/mqtt_client.c @@ -571,6 +571,7 @@ static esp_err_t esp_mqtt_connect(esp_mqtt_client_handle_t client, int timeout_m static esp_err_t esp_mqtt_abort_connection(esp_mqtt_client_handle_t client) { + MQTT_API_LOCK(client); esp_transport_close(client->transport); client->wait_timeout_ms = client->config->reconnect_timeout_ms; client->reconnect_tick = platform_tick_get_ms(); @@ -579,6 +580,7 @@ static esp_err_t esp_mqtt_abort_connection(esp_mqtt_client_handle_t client) client->event.event_id = MQTT_EVENT_DISCONNECTED; client->wait_for_ping_resp = false; esp_mqtt_dispatch_event_with_msgid(client); + MQTT_API_UNLOCK(client); return ESP_OK; }