close path: make sure a second time timeout and ssl buffered lists are scrubbed
authorAndy Green <andy@warmcat.com>
Fri, 4 Aug 2017 05:27:34 +0000 (13:27 +0800)
committerAndy Green <andy@warmcat.com>
Fri, 4 Aug 2017 05:29:11 +0000 (13:29 +0800)
lws_meta children can have a different close path

lib/libwebsockets.c

index 2ca8316..e774b93 100755 (executable)
@@ -101,6 +101,11 @@ lws_free_wsi(struct lws *wsi)
        }
        lws_pt_unlock(pt);
 
+       /* since we will destroy the wsi, make absolutely sure now */
+
+       lws_ssl_remove_wsi_from_buffered_list(wsi);
+       lws_remove_from_timeout_list(wsi);
+
        wsi->context->count_wsi_allocated--;
        lwsl_debug("%s: %p, remaining wsi %d\n", __func__, wsi,
                        wsi->context->count_wsi_allocated);