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:
parent
5442cf7ebf
commit
57d539ef51
3 changed files with 3 additions and 2 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue