1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-09 00:00:04 +01:00

ss: http: defend against CONNECTED-CONNECTED

This commit is contained in:
Andy Green 2021-09-17 09:11:08 +01:00
parent a0e60304a4
commit 1e56dc9642

View file

@ -650,9 +650,11 @@ secstream_h1(struct lws *wsi, enum lws_callback_reasons reason, void *user,
if (h->prev_ss_state != LWSSSCS_CONNECTED) {
wsi->client_suppress_CONNECTION_ERROR = 1;
r = lws_ss_event_helper(h, LWSSSCS_CONNECTED);
if (r != LWSSSSRET_OK)
return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
if (h->prev_ss_state != LWSSSCS_CONNECTED) {
r = lws_ss_event_helper(h, LWSSSCS_CONNECTED);
if (r != LWSSSSRET_OK)
return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
}
}
/*
@ -829,9 +831,11 @@ malformed:
!strcmp(h->policy->u.http.method, "POST"))) {
wsi->client_suppress_CONNECTION_ERROR = 1;
r = lws_ss_event_helper(h, LWSSSCS_CONNECTED);
if (r)
return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
if (h->prev_ss_state != LWSSSCS_CONNECTED) {
r = lws_ss_event_helper(h, LWSSSCS_CONNECTED);
if (r)
return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
}
}
break;
@ -1100,9 +1104,11 @@ malformed:
lws_metrics_caliper_report_hist(h->cal_txn, (struct lws *)NULL);
#endif
wsi->client_suppress_CONNECTION_ERROR = 1;
r = lws_ss_event_helper(h, LWSSSCS_CONNECTED);
if (r)
return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
if (h->prev_ss_state != LWSSSCS_CONNECTED) {
r = lws_ss_event_helper(h, LWSSSCS_CONNECTED);
if (r)
return _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi, &h);
}
}
r = lws_ss_event_helper(h, LWSSSCS_SERVER_TXN);