diff --git a/a8/websocketsession.cc b/a8/websocketsession.cc index c3aae61..e6081c1 100644 --- a/a8/websocketsession.cc +++ b/a8/websocketsession.cc @@ -212,16 +212,20 @@ namespace a8 Close(); return; } + if (opcode != BINARY_MODE) { + Close(); + return; + } if (!is_final_frame) { + Close(); return; } bool is_masked = (mask_payloadlen & 0x80) == 0x80; - if (opcode != BINARY_MODE) { + if (!is_masked) { + Close(); return; } - assert(opcode == BINARY_MODE); - assert(is_masked); unsigned char payloadlen = mask_payloadlen & 0x7F; unsigned int framelen = 0;