File 0693-inets-httpd_request-honor-RFC2616-LF-only-as-header-.patch of Package erlang

From 58d4a482d710d002acaabd74230922202adbc165 Mon Sep 17 00:00:00 2001
From: alex <alexander.harju@mobilearts.com>
Date: Tue, 9 Apr 2019 15:35:49 +0200
Subject: [PATCH] inets: httpd_request - honor RFC2616 LF only as header line
 terminator

---
 lib/inets/src/http_server/httpd_request.erl |  4 ++--
 lib/inets/test/http_format_SUITE.erl        | 13 +++++++++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/lib/inets/src/http_server/httpd_request.erl b/lib/inets/src/http_server/httpd_request.erl
index 9d7538a13d..f3e24263b8 100644
--- a/lib/inets/src/http_server/httpd_request.erl
+++ b/lib/inets/src/http_server/httpd_request.erl
@@ -196,9 +196,9 @@ parse_headers(<<?CR,?LF,?LF,Body/binary>>, [], [], Current, Max, Options, Result
     parse_headers(<<?CR,?LF,?CR,?LF,Body/binary>>, [], [], Current, Max,  
 		  Options, Result);
 
-parse_headers(<<?LF,?LF,Body/binary>>, [], [], Current, Max,  Options, Result) ->
+parse_headers(<<?LF,?LF,Body/binary>>, Header, Headers, Current, Max,  Options, Result) ->
     %% If ?CR is is missing RFC2616 section-19.3 
-    parse_headers(<<?CR,?LF,?CR,?LF,Body/binary>>, [], [], Current, Max, 
+    parse_headers(<<?CR,?LF,?CR,?LF,Body/binary>>, Header, Headers, Current, Max, 
 		  Options, Result);
 
 parse_headers(<<?CR,?LF,?CR,?LF,Body/binary>>, [], [], _, _,  _, Result) ->
diff --git a/lib/inets/test/http_format_SUITE.erl b/lib/inets/test/http_format_SUITE.erl
index d6b0e5f9f5..7943983945 100644
--- a/lib/inets/test/http_format_SUITE.erl
+++ b/lib/inets/test/http_format_SUITE.erl
@@ -414,6 +414,19 @@ http_request(Config) when is_list(Config) ->
 				      {max_content_length, ?HTTP_MAX_CONTENT_LENGTH}
 				     ]], HttpHead2),
 
+    %% If ?CR is is missing RFC2616 section-19.3
+    HttpHead3 = ["GET http://www.erlang.org HTTP/1.1", [?LF],
+                 "Accept: text/html", [?LF, ?LF]],
+    {"GET",
+     "http://www.erlang.org",
+     "HTTP/1.1",
+     {#http_request_h{}, [{"accept","text/html"}]}, <<>>} =
+	parse(httpd_request, parse, [[{max_header, ?HTTP_MAX_HEADER_SIZE},
+				      {max_version, ?HTTP_MAX_VERSION_STRING},
+				      {max_method, ?HTTP_MAX_METHOD_STRING},
+				      {max_content_length, ?HTTP_MAX_CONTENT_LENGTH}
+				     ]], HttpHead3),
+
     %% Note the following body is not related to the headers above
     HttpBody = ["<HTML>\n<HEAD>\n<TITLE> dummy </TITLE>\n</HEAD>\n<BODY>\n",
 		"<H1>dummy</H1>\n</BODY>\n</HTML>\n"],
-- 
2.16.4

openSUSE Build Service is sponsored by