]> git.ipfire.org Git - thirdparty/squid.git/commit
Compliance: Improved HTTP Range header field validation.
authorAlex Rousskov <rousskov@measurement-factory.com>
Mon, 2 Aug 2010 16:43:03 +0000 (10:43 -0600)
committerAlex Rousskov <rousskov@measurement-factory.com>
Mon, 2 Aug 2010 16:43:03 +0000 (10:43 -0600)
commit8beb32247d4ba7895c1f342da4716f00b71dc51c
treeb4e075b2ad5e87724289370b9bbc93d85ffb4b84
parent6be4a9a8e7f309847bfc669075428380de552512
Compliance: Improved HTTP Range header field validation.

1) Improved HttpHdrRangeSpec::parseInit() to parse syntactically valid
range specs:

  * Suffix ranges with 0 length (i.e. -0) are syntactically valid.

  * Check that last-byte-pos is greater than or equal to first-byte-pos.

After the change, HttpHdrRangeSpec::parseInit() successfully parses suffix
ranges with 0 length. They were rejected before. RFC 2616 section 14.35.1 says
such range specs are syntactically valid but unsatisfiable. Thus, we should
ignore the range spec itself, but not the whole range header. These range
specs will be rejected later, during canonization.

2) In HttpHdrRangeSpec::parseInit(), ignore the whole range header if one of
range specs is syntactically invalid (i.e. range spec parsing fails).

Co-Advisor test case: test_clause/rfc2616/invalidRange
src/HttpHdrRange.cc