mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-16 00:00:07 +01:00
avoid using deallocated things during context dedtroy
Signed-off-by: Andy Green <andy.green@linaro.org>
This commit is contained in:
parent
bf6ba0427b
commit
e7f9232c1a
4 changed files with 7 additions and 1 deletions
|
@ -703,7 +703,7 @@ check_accept:
|
||||||
|
|
||||||
p = lws_hdr_simple_ptr(wsi, WSI_TOKEN_ACCEPT);
|
p = lws_hdr_simple_ptr(wsi, WSI_TOKEN_ACCEPT);
|
||||||
if (strcmp(p, wsi->u.hdr.ah->initial_handshake_hash_base64)) {
|
if (strcmp(p, wsi->u.hdr.ah->initial_handshake_hash_base64)) {
|
||||||
lwsl_warn("lws_client_int_s_hs: accept %s wrong vs %s\n", p,
|
lwsl_warn("lws_client_int_s_hs: accept '%s' wrong vs '%s'\n", p,
|
||||||
wsi->u.hdr.ah->initial_handshake_hash_base64);
|
wsi->u.hdr.ah->initial_handshake_hash_base64);
|
||||||
goto bail2;
|
goto bail2;
|
||||||
}
|
}
|
||||||
|
|
|
@ -261,6 +261,8 @@ lws_context_destroy(struct lws_context *context)
|
||||||
if (!context)
|
if (!context)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
context->being_destroyed = 1;
|
||||||
|
|
||||||
memset(&wsi, 0, sizeof(wsi));
|
memset(&wsi, 0, sizeof(wsi));
|
||||||
wsi.context = context;
|
wsi.context = context;
|
||||||
|
|
||||||
|
|
|
@ -535,6 +535,7 @@ struct lws_context {
|
||||||
void *user_space;
|
void *user_space;
|
||||||
|
|
||||||
struct lws_plat_file_ops fops;
|
struct lws_plat_file_ops fops;
|
||||||
|
unsigned int being_destroyed:1;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
|
|
@ -149,6 +149,9 @@ bail:
|
||||||
int
|
int
|
||||||
_lws_rx_flow_control(struct lws *wsi)
|
_lws_rx_flow_control(struct lws *wsi)
|
||||||
{
|
{
|
||||||
|
if (!wsi || wsi->context->being_destroyed)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* there is no pending change */
|
/* there is no pending change */
|
||||||
if (!(wsi->rxflow_change_to & LWS_RXFLOW_PENDING_CHANGE))
|
if (!(wsi->rxflow_change_to & LWS_RXFLOW_PENDING_CHANGE))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue