diff --git a/components/esp-tls/esp_tls_mbedtls.c b/components/esp-tls/esp_tls_mbedtls.c index e719e472e8..ad2386d7d8 100644 --- a/components/esp-tls/esp_tls_mbedtls.c +++ b/components/esp-tls/esp_tls_mbedtls.c @@ -270,8 +270,11 @@ void esp_mbedtls_conn_delete(esp_tls_t *tls) if (tls != NULL) { esp_mbedtls_cleanup(tls); if (tls->is_tls) { - mbedtls_net_free(&tls->server_fd); - tls->sockfd = tls->server_fd.fd; + if (tls->server_fd.fd != -1) { + mbedtls_net_free(&tls->server_fd); + /* Socket is already closed by `mbedtls_net_free` and hence also change assignment of its copy to an invalid value */ + tls->sockfd = -1; + } } } }