Skip to content

Commit 3694e43

Browse files
Limit subprotocol and extension lengths
1 parent 08df914 commit 3694e43

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/HTTPSocket.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,13 +228,13 @@ void HttpSocket<isServer>::upgrade(const char *secKey, const char *extensions, s
228228
base64(shaDigest, upgradeBuffer + 97);
229229
memcpy(upgradeBuffer + 125, "\r\n", 2);
230230
size_t upgradeResponseLength = 127;
231-
if (extensionsResponse.length()) {
231+
if (extensionsResponse.length() && extensionsResponse.length() < 200) {
232232
memcpy(upgradeBuffer + upgradeResponseLength, "Sec-WebSocket-Extensions: ", 26);
233233
memcpy(upgradeBuffer + upgradeResponseLength + 26, extensionsResponse.data(), extensionsResponse.length());
234234
memcpy(upgradeBuffer + upgradeResponseLength + 26 + extensionsResponse.length(), "\r\n", 2);
235235
upgradeResponseLength += 26 + extensionsResponse.length() + 2;
236236
}
237-
if (subprotocolLength) {
237+
if (subprotocolLength && subprotocolLength < 200) {
238238
memcpy(upgradeBuffer + upgradeResponseLength, "Sec-WebSocket-Protocol: ", 24);
239239
memcpy(upgradeBuffer + upgradeResponseLength + 24, subprotocol, subprotocolLength);
240240
memcpy(upgradeBuffer + upgradeResponseLength + 24 + subprotocolLength, "\r\n", 2);

0 commit comments

Comments
 (0)