authorgravatar for 70151472+Marzin-bot@users.noreply.github.comKuwazy <70151472+Marzin-bot@users.noreply.github.com> 2025-03-25 15:00:50+01:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-03-25 15:00:50+01:00
log6b6dc1cd3ac2690490628e0fee276e143e431b39
tree1c52f566d3d570046c487fa8b3372115138ef9ce
parente1c6af2840edc723db8f89522850b6f882f8234f
signaturebadge-check Signed by PGP key B5690EEEBB952194

Added check for HTTP version and GET method when upgrading WebSocket to comply with RFC 6455. (#23332)


1 files changed, 5 insertions(+), 0 deletions(-)

lib/std/http/WebSocket.zig+5
...@@ -23,6 +23,11 @@ pub fn init(...@@ -23,6 +23,11 @@ pub fn init(
23 send_buffer: []u8,23 send_buffer: []u8,
24 recv_buffer: []align(4) u8,24 recv_buffer: []align(4) u8,
25) InitError!bool {25) InitError!bool {
26 switch (request.head.version) {
27 .@"HTTP/1.0" => return false,
28 .@"HTTP/1.1" => if (request.head.method != .GET) return false,
29 }
30
26 var sec_websocket_key: ?[]const u8 = null;31 var sec_websocket_key: ?[]const u8 = null;
27 var upgrade_websocket: bool = false;32 var upgrade_websocket: bool = false;
28 var it = request.iterateHeaders();33 var it = request.iterateHeaders();