Forráskód Böngészése

Don't allow more than 2 GB of websocket payload (#488)

bel2125 8 éve
szülő
commit
494c957edd
1 módosított fájl, 6 hozzáadás és 0 törlés
  1. 6 0
      src/civetweb.c

+ 6 - 0
src/civetweb.c

@@ -10653,6 +10653,12 @@ read_websocket(struct mg_connection *conn,
 				memcpy(&l2, &buf[6], 4);
 				header_len = 10 + mask_len;
 				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;
+				}
 			}
 		}