Fail to read a chunk if its length is >= ULONG_MAX (#444)

We cannot trivially support such large chunks, and the maximum value
std::strtoul can parse accurately is ULONG_MAX-1. Error out early if the
length is longer than that.
This commit is contained in:
Matthew DeVore 2020-04-23 07:59:15 -07:00 committed by GitHub
parent c49441ae64
commit df138366e4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 0 deletions

View file

@ -1900,6 +1900,7 @@ inline bool read_content_chunked(Stream &strm, ContentReceiver out) {
chunk_len = std::strtoul(line_reader.ptr(), &end_ptr, 16);
if (end_ptr == line_reader.ptr()) { return false; }
if (chunk_len == ULONG_MAX) { return false; }
if (chunk_len == 0) { break; }