Ver código fonte

Merge branch 'bugfix/fix_socket_leak' into 'master'

esp-tls: socket will be set to -1 and will not be closed

Closes IDFGH-8378

See merge request espressif/esp-idf!20333
Mahavir Jain 3 anos atrás
pai
commit
a9f15d1556
1 arquivos alterados com 5 adições e 2 exclusões
  1. 5 2
      components/esp-tls/esp_tls_mbedtls.c

+ 5 - 2
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;
+            }
         }
     }
 }