Index: net/websockets/websocket_channel.cc |
diff --git a/net/websockets/websocket_channel.cc b/net/websockets/websocket_channel.cc |
index a9600986ecb382bca810cab968dff410158fa533..dc8eb8aa35c463c2d65649800e5f525fbf9eb5a3 100644 |
--- a/net/websockets/websocket_channel.cc |
+++ b/net/websockets/websocket_channel.cc |
@@ -653,6 +653,12 @@ ChannelState WebSocketChannel::HandleFrame( |
kWebSocketErrorProtocolError, |
"Control message with FIN bit unset received"); |
} |
+ if (frame->header.reserved1 || frame->header.reserved2 || |
+ frame->header.reserved3) { |
+ return FailChannel("Received a frame with an invalid reserved bit set.", |
+ kWebSocketErrorProtocolError, |
+ "Invalid reserved bit"); |
+ } |
// Respond to the frame appropriately to its type. |
return HandleFrameByState( |