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

pmd: fix buffer being reused while draining extensions

This commit is contained in:
Lonny Wong 2023-11-22 00:20:18 +08:00 committed by Andy Green
parent 5442cf7ebf
commit 57d539ef51
3 changed files with 3 additions and 2 deletions

View file

@ -723,7 +723,7 @@ utf8_fail:
} }
#if !defined(LWS_WITHOUT_EXTENSIONS) #if !defined(LWS_WITHOUT_EXTENSIONS)
if (!lin) if (!lin && !(already_processed & ALREADY_PROCESSED_FULL_DRAINING))
break; break;
#endif #endif

View file

@ -75,6 +75,7 @@ enum lws_websocket_opcodes_07 {
#define ALREADY_PROCESSED_IGNORE_CHAR 1 #define ALREADY_PROCESSED_IGNORE_CHAR 1
#define ALREADY_PROCESSED_NO_CB 2 #define ALREADY_PROCESSED_NO_CB 2
#define ALREADY_PROCESSED_FULL_DRAINING 4
#if !defined(LWS_WITHOUT_EXTENSIONS) #if !defined(LWS_WITHOUT_EXTENSIONS)
struct lws_vhost_role_ws { struct lws_vhost_role_ws {

View file

@ -1080,7 +1080,7 @@ lws_parse_ws(struct lws *wsi, unsigned char **buf, size_t len)
wsi->ws->rx_draining_ext); wsi->ws->rx_draining_ext);
#endif #endif
m = lws_ws_rx_sm(wsi, ALREADY_PROCESSED_IGNORE_CHAR | m = lws_ws_rx_sm(wsi, ALREADY_PROCESSED_IGNORE_CHAR |
ALREADY_PROCESSED_NO_CB, 0); ALREADY_PROCESSED_NO_CB | ALREADY_PROCESSED_FULL_DRAINING, 0);
} }
if (m < 0) { if (m < 0) {