From 34cb6432734df6cf4818ef1033b5e4cab6f37fc1 Mon Sep 17 00:00:00 2001 From: sta Date: Fri, 1 Jan 2021 17:43:55 +0900 Subject: [PATCH] [Modify] Polish it --- websocket-sharp/Net/HttpListenerRequest.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/websocket-sharp/Net/HttpListenerRequest.cs b/websocket-sharp/Net/HttpListenerRequest.cs index 19dc4fa9..372d2697 100644 --- a/websocket-sharp/Net/HttpListenerRequest.cs +++ b/websocket-sharp/Net/HttpListenerRequest.cs @@ -784,47 +784,60 @@ namespace WebSocketSharp.Net internal void SetRequestLine (string requestLine) { var parts = requestLine.Split (new[] { ' ' }, 3); + if (parts.Length < 3) { _context.ErrorMessage = "Invalid request line (parts)"; + return; } var method = parts[0]; + if (method.Length == 0) { _context.ErrorMessage = "Invalid request line (method)"; + return; } var target = parts[1]; + if (target.Length == 0) { _context.ErrorMessage = "Invalid request line (target)"; + return; } var rawVer = parts[2]; + if (rawVer.Length != 8) { _context.ErrorMessage = "Invalid request line (version)"; + return; } if (rawVer.IndexOf ("HTTP/") != 0) { _context.ErrorMessage = "Invalid request line (version)"; + return; } Version ver; + if (!rawVer.Substring (5).TryCreateVersion (out ver)) { _context.ErrorMessage = "Invalid request line (version)"; + return; } if (ver.Major < 1) { _context.ErrorMessage = "Invalid request line (version)"; + return; } if (!method.IsHttpMethod (ver)) { _context.ErrorMessage = "Invalid request line (method)"; + return; }