Fix `Range` handling in \wcf\util\FileReader
authorTim Düsterhus <duesterhus@woltlab.com>
Sun, 23 Apr 2017 14:20:24 +0000 (16:20 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Sun, 23 Apr 2017 14:26:44 +0000 (16:26 +0200)
commitc6f28407e948d4d977a42c6a4e466144b5accb69
treeb0fc62b192a8074bb3f7bd83575b21b0a5b4ae96
parentf1a2cc9b279f9f0f4982c9aece843ab654b5cc19
Fix `Range` handling in \wcf\util\FileReader

- Disallow invalid Range: bytes=100 without a trailing hyphen.
- Disallow invalid Range: bytes=2-1 with start > end.
- Support valid    Range: bytes=0-0 with end = 0.
- Support maximum offset > filesize as per RFC 7233:
   A client can limit the number of bytes requested without knowing the
   size of the selected representation.  If the last-byte-pos value is
   absent, or if the value is greater than or equal to the current
   length of the representation data, the byte range is interpreted as
   the remainder of the representation (i.e., the server replaces the
   value of last-byte-pos with a value that is one less than the current
   length of the selected representation).
wcfsetup/install/files/lib/util/FileReader.class.php