From ea1d09b3b8ee8ad667b9d680013ed9448e0727dc Mon Sep 17 00:00:00 2001 From: Martin Blix Grydeland Date: Thu, 15 Aug 2019 14:06:00 +0200 Subject: [PATCH] Add a test case covering some HTTP/1 parsing corner cases --- bin/varnishtest/tests/b00067.vtc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 bin/varnishtest/tests/b00067.vtc diff --git a/bin/varnishtest/tests/b00067.vtc b/bin/varnishtest/tests/b00067.vtc new file mode 100644 index 0000000000..2167c9483f --- /dev/null +++ b/bin/varnishtest/tests/b00067.vtc @@ -0,0 +1,29 @@ +varnishtest "HTTP/1 parsing checks" + +# Some tricky requests that have been known to cause parsing errors in the past. + +server s1 { + rxreq + txresp +} -start + +varnish v1 -vcl+backend { +} -start + +# This test checks a bug that was dependent on the contents of the buffer left behind +# by the previous request +client c1 { + send "GET / HTTP/1.1\r\nHost: asdf.com\r\nFoo: baar\r\n\r\n\r\n\r\n\r\n" + rxresp + send "GET / HTTP/1.1\r\nHost: asdf.com\r\nAsdf: b\n \r\n\r\nSj\r" + rxresp + expect resp.status == 200 +} -run + +# This tests that the line continuation handling doesn't clear out the end of headers +# [CR]LF +client c1 { + send "GET / HTTP/1.1\r\nHost: asdf.com\r\nAsdf: b\n \r\n\r\nSj" + rxresp + expect resp.status == 200 +} -run