Преглед изворни кода

Merge branch 'bugfix/httpd_sess_close' into 'master'

httpd_sess_close: Check for session validity before closing

See merge request espressif/esp-idf!5705
Angus Gratton пре 6 година
родитељ
комит
d6b641949c
1 измењених фајлова са 4 додато и 0 уклоњено
  1. 4 0
      components/esp_http_server/src/httpd_sess.c

+ 4 - 0
components/esp_http_server/src/httpd_sess.c

@@ -378,6 +378,10 @@ static void httpd_sess_close(void *arg)
 {
     struct sock_db *sock_db = (struct sock_db *)arg;
     if (sock_db) {
+        if (sock_db->lru_counter == 0) {
+            ESP_LOGD(TAG, "Skipping session close for %d as it seems to be a race condition", sock_db->fd);
+            return;
+        }
         int fd = sock_db->fd;
         struct httpd_data *hd = (struct httpd_data *) sock_db->handle;
         httpd_sess_delete(hd, fd);