- 27 Aug, 2019 8 commits
-
-
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.
-
Martin Blix Grydeland authored
-
- 10 Jul, 2019 18 commits
-
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
-
Nils Goroll authored
Encoding and decoding are as much a function as handling blobs, in particular with transcode().
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Geoff Simmons authored
Closes #2870 Conflicts: include/tbl/vsl_tags.h We can use the NOSUP_NOTICE instead.
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Federico G. Schwindt authored
-
Federico G. Schwindt authored
Addresses the doc part of #2872.
-
Dridi Boukelmoune authored
It's really not obvious, and if it weren't for other tests covering probes it wouldn't be enough by itself to verify what it needs to.
-
Dridi Boukelmoune authored
I was wrong, or I lied. This is the final cleanup.
-
Dridi Boukelmoune authored
This time, once and for all.
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Martin Blix Grydeland authored
-
Nils Goroll authored
The due time of the probe which has just finished may be earlier than the previously earliest due time, so vbp_thread needs to be woken up to update the nxt value Fixes #2976
-
- 04 Jul, 2019 14 commits
-
-
Poul-Henning Kamp authored
Allow VMOD writers to permit with NULL_OK flag. Only call object destructor on initialized objects. Fixes #2839 Conflicts: lib/libvmod_debug/vmod.vcc
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
And make it clear that we steal the reference at this point.
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
Solaris, (remember Solaris?) will return connection related errnos on fd metadata operations such as ioctl(2), [gs]etsockopt(2) etc. We propagated these errors up from VTC_(non)blocking() which could, theoretically, bail out earlier than it would otherwise have done. This complicated code far more than it speeded anything up. Instead just ensure that any errors returned are indeed connection related, and then ignore them, and let Solaris deal with the broken connection same way as other operating systems.
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
-
Federico G. Schwindt authored
-
Poul-Henning Kamp authored
Conflicts: bin/varnishd/cache/cache_req_fsm.c include/tbl/vsl_tags.h Other SLTs were back-ported as well, but marked as not supported, to ensure binary forward compatibility up to 6.2 releases.
-