|
@@ -10653,6 +10653,12 @@ read_websocket(struct mg_connection *conn,
|
|
memcpy(&l2, &buf[6], 4);
|
|
memcpy(&l2, &buf[6], 4);
|
|
header_len = 10 + mask_len;
|
|
header_len = 10 + mask_len;
|
|
data_len = (((uint64_t)ntohl(l1)) << 32) + ntohl(l2);
|
|
data_len = (((uint64_t)ntohl(l1)) << 32) + ntohl(l2);
|
|
|
|
+
|
|
|
|
+ if (data_len > (uint64_t)0x7FFF0000ul) {
|
|
|
|
+ /* no can do */
|
|
|
|
+ mg_cry(conn, "websocket out of memory; closing connection");
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|