diff options
| author | Egor Tensin <egor@tensin.name> | 2026-10-11 19:00:29 +0500 |
|---|---|---|
| committer | Egor Tensin <egor@tensin.name> | 2026-10-11 19:00:29 +0500 |
| commit | 20cbf953d092f8a3d5d4126caea9c3c90b1d6f93 (patch) | |
| tree | f2f5e770657d5252ef02b0aa417fc03eb9ca83c0 /node_modules/undici/lib/web/websocket | |
| parent | update my email (diff) | |
| download | cleanup-path-20cbf953d092f8a3d5d4126caea9c3c90b1d6f93.tar.gz cleanup-path-20cbf953d092f8a3d5d4126caea9c3c90b1d6f93.zip | |
bump dependencies
Diffstat (limited to 'node_modules/undici/lib/web/websocket')
| -rw-r--r-- | node_modules/undici/lib/web/websocket/connection.js | 2 | ||||
| -rw-r--r-- | node_modules/undici/lib/web/websocket/permessage-deflate.js | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/node_modules/undici/lib/web/websocket/connection.js b/node_modules/undici/lib/web/websocket/connection.js index bb87d36..1197b9b 100644 --- a/node_modules/undici/lib/web/websocket/connection.js +++ b/node_modules/undici/lib/web/websocket/connection.js @@ -192,7 +192,7 @@ function establishWebSocketConnection (url, protocols, client, ws, onEstablish, // is specified, the server needs to include the same field and one of // the selected subprotocol values in its response for the connection to // be established. - if (!requestProtocols.includes(secProtocol)) { + if (requestProtocols === null || !requestProtocols.includes(secProtocol)) { failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.') return } diff --git a/node_modules/undici/lib/web/websocket/permessage-deflate.js b/node_modules/undici/lib/web/websocket/permessage-deflate.js index 6a6e438..0b3d493 100644 --- a/node_modules/undici/lib/web/websocket/permessage-deflate.js +++ b/node_modules/undici/lib/web/websocket/permessage-deflate.js @@ -63,7 +63,12 @@ class PerMessageDeflate { if (this.#maxPayloadSize > 0 && this.#inflate[kLength] > this.#maxPayloadSize) { callback(new MessageSizeExceededError()) + // The inflater may still hold buffered input that can emit a late + // zlib error. Remove the data listener, then deterministically stop + // the stream so a subsequent 'error' cannot fire without a listener + // (which would terminate the process as an unhandled error event). this.#inflate.removeAllListeners() + this.#inflate.destroy() this.#inflate = null return } |
