diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-12-07 22:57:34 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-12-09 21:39:43 +0900 |
| commit | 12988e5282ef52a2806cbaca9f4074698f35e399 (patch) | |
| tree | 7a8d5a65a8e8478ba5855e84a1077baee1a2028d /src/ChunkedDecodingStreamFilter.cc | |
| parent | f25e67b0178511b26d55642f215a095321a169a8 (diff) | |
Replaced uint64_t with off_t or int64_t.
Since off_t is int64_t with LFS, we cannot take advantage of extra
capacity of uint64_t.
Diffstat (limited to 'src/ChunkedDecodingStreamFilter.cc')
| -rw-r--r-- | src/ChunkedDecodingStreamFilter.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/ChunkedDecodingStreamFilter.cc b/src/ChunkedDecodingStreamFilter.cc index b1f98bdf..87140e9e 100644 --- a/src/ChunkedDecodingStreamFilter.cc +++ b/src/ChunkedDecodingStreamFilter.cc @@ -96,8 +96,11 @@ bool ChunkedDecodingStreamFilter::readChunkSize if(extPos == std::string::npos || crlfPos < extPos) { extPos = crlfPos; } - chunkSize_ = util::parseULLInt + chunkSize_ = util::parseLLInt (std::string(buf_.begin(), buf_.begin()+extPos), 16); + if(chunkSize_ < 0) { + throw DL_ABORT_EX("Chunk size must be positive"); + } assert(crlfPos+2 > pbufSize); inbufOffset += crlfPos+2-pbufSize; buf_.clear(); @@ -155,8 +158,8 @@ bool ChunkedDecodingStreamFilter::readData const SharedHandle<BinaryStream>& out, const SharedHandle<Segment>& segment) { - uint64_t readlen = - std::min(chunkSize_, static_cast<uint64_t>(inlen-inbufOffset)); + off_t readlen = + std::min(chunkSize_, static_cast<off_t>(inlen-inbufOffset)); outlen += getDelegate()->transform(out, segment, inbuf+inbufOffset, readlen); chunkSize_ -= readlen; inbufOffset += readlen; |
