From 7872057976f69343b836cc9e4f9683efa78f49ed Mon Sep 17 00:00:00 2001 From: David Cermak Date: Tue, 30 Mar 2021 19:05:25 +0200 Subject: [PATCH] esp_modem: Fixed modem netif deinit to clear IP events Function esp_modem_netif_clear_default_handlers() didn't unregister event handlers from IP related events, so if the netif modem was reinitialized the previous handler was called with already destroyed esp_netif handle. Closes https://github.com/espressif/esp-idf/issues/6787 --- .../pppos_client/components/modem/src/esp_modem_netif.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/examples/protocols/pppos_client/components/modem/src/esp_modem_netif.c b/examples/protocols/pppos_client/components/modem/src/esp_modem_netif.c index 1c6f4bcf19..9dd081ab6b 100644 --- a/examples/protocols/pppos_client/components/modem/src/esp_modem_netif.c +++ b/examples/protocols/pppos_client/components/modem/src/esp_modem_netif.c @@ -144,6 +144,15 @@ esp_err_t esp_modem_netif_clear_default_handlers(void *h) if (ret != ESP_OK) { goto clear_event_failed; } + ret = esp_event_handler_unregister(IP_EVENT, IP_EVENT_PPP_GOT_IP, esp_netif_action_connected); + if (ret != ESP_OK) { + goto clear_event_failed; + } + ret = esp_event_handler_unregister(IP_EVENT, IP_EVENT_PPP_LOST_IP, esp_netif_action_disconnected); + if (ret != ESP_OK) { + goto clear_event_failed; + } + return ESP_OK; clear_event_failed: