- 03 Sep, 2019 8 commits
-
-
Martin Blix Grydeland authored
Apply some adjustments to recent patches based off of review by Nils Goroll at UPLEX (@nigoroll)
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
When clearing the [CR]LF in a line continuation, we would continue replacing any [CR|LF|HT|SP] characters up until the end of the buffer, possibly overwriting later [CR]LFs. Fix this by only unconditionally overwrite one [CR]LF, and then only replace [HT|SP] with SP to keep with previous behaviour. Update r00494.vtc to include multiple line continuations to make sure they are parsed.
-
Martin Blix Grydeland authored
The end of http1_dissect_hdrs ends with skipping over the final [CR]LF that marks then end of the headers. Currently that skip is optional, that is, it is skipped if it was present. This patch adds an assert if the final [CR]LF is not found when finishing the parsing. HTTP1_Complete guarantees that it is there, if not we would not have started parsing the request or response in the first place, and if it is missing, there must be an error in the parsing leading up to it.
-
Martin Blix Grydeland authored
In http1_splitline, if the third field is missing, we would still set the txt.b value to where the field would have been, with a NULL txt.e entry. This would cause http_Proto to attempt to parse the values there. Fix this by only setting the .b and .e if the third field was present.
-
Martin Blix Grydeland authored
When parsing a request like this, "GET /\n\n", the first NL would be overwritten by nul guard inserted after the 2nd field, and the second NL would be overwritten by the nul guard after the missing 3rd field. This would cause http1_dissect_hdrs to attempt to decode the body as headers.
-
Martin Blix Grydeland authored
The proto field is optional in HTTP, so it may not be set. Set the proto to 0 also for a NULL value instead of segfaulting if it were NULL.
-
Alf-André Walla authored
The macros vct_iscrlf() and vct_skipcrlf() may look at one or two bytes after its pointer value, causing OOB reads. This would allow http1_dissect_hdrs to wrongly see a CRLF when one wasn't there (the last LF left over in the bufer from the previous request). Change the macros to inline functions, and harden them by always sending the end pointer so that they can't overflow. vct_iscrlf() will return an int value of 0 for no [CR]LF, 1 for LF and 2 for CRLF. vct_skipcrlf() will return the pointer having been skipped 0, 1 or 2 bytes.
-
- 02 Sep, 2019 1 commit
-
-
Guillaume Quintard authored
-
- 26 Aug, 2019 1 commit
-
-
David Carlier authored
-
- 22 Aug, 2019 2 commits
-
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
- 21 Aug, 2019 2 commits
-
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
Fixes #3046
-
- 19 Aug, 2019 3 commits
-
-
Poul-Henning Kamp authored
Also fix -e -> -E I overlooked.
-
Poul-Henning Kamp authored
-
Shohei Tanaka(@xcir) authored
-
- 14 Aug, 2019 4 commits
-
-
Nils Goroll authored
I have checked the illumos source and there are some legit conditions when EPROTO is signalled for misbehaving tcp peers. panic seen in production: Assert error in VTCP_blocking(), vtcp.c line 225: Condition(VTCP_Check(j)) not true. version = varnish-trunk revision 3457dedc, vrt api = 6.1 ident = -jsolaris,-smalloc,-smalloc,-hcritbit,ports now = 39647514.473957 (mono), 1564367221.322315 (real) Backtrace: 4630c2: /usr/local/sbin/varnishd'pan_backtrace+0x30 [0x4630c2] 463535: /usr/local/sbin/varnishd'pan_ic+0x23a [0x463535] 4cefcb: /usr/local/sbin/varnishd'VTCP_blocking+0x5e [0x4cefcb] 48e789: /usr/local/sbin/varnishd'HTTP1_Session+0x150 [0x48e789] 48d6bd: /usr/local/sbin/varnishd'http1_req+0x12a [0x48d6bd] 482cbd: /usr/local/sbin/varnishd'Pool_Work_Thread+0x4e4 [0x482cbd] 481d4c: /usr/local/sbin/varnishd'WRK_Thread+0x2bf [0x481d4c] 482de4: /usr/local/sbin/varnishd'pool_thread+0x96 [0x482de4] fffffc7fef23e1ea: /lib/amd64/libc.so.1'_thrp_setup+0x8a [0xfffffc7fef23e1ea] fffffc7fef23e500: /lib/amd64/libc.so.1'_lwp_start+0x0 [0xfffffc7fef23e500] errno = 71 (Protocol error)
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
STRING.upper() and STRING.lower() are methods. Relevant to: #3023
-
Andrew Wiik authored
-
- 13 Aug, 2019 5 commits
-
-
Poul-Henning Kamp authored
file is recreated by varnishd. Martin spotted that I lost this in the previous commit.
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
Obsoletes: #3039
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
for clients what the _index entry is about.
-
- 08 Aug, 2019 3 commits
-
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
- 07 Aug, 2019 11 commits
-
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
Author: Frédéric Lécaille <flecaille@haproxy.com> Date: Mon Jul 15 15:20:07 2019 +0200 Open and close a TCP socket to simulate an unreachable server. This is done for each haproxy instance. The socket address (resp. port) may be referenced by ${<name>_closed_addr} (resp. ${<name>_closed_port}) variable where <name> is the haproxy instance name.
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
Also collect in one single place that HASH is the default.
-