Chromium Code Reviews| Index: net/http/http_chunked_decoder.cc |
| diff --git a/net/http/http_chunked_decoder.cc b/net/http/http_chunked_decoder.cc |
| index 7aa4a965cd707cc705a693863bb75a6f26ef91b1..322c4a6773943d28ee92ca55e36019f85b4f3272 100644 |
| --- a/net/http/http_chunked_decoder.cc |
| +++ b/net/http/http_chunked_decoder.cc |
| @@ -71,7 +71,10 @@ int HttpChunkedDecoder::FilterBuf(char* buf, int buf_len) { |
| while (buf_len) { |
| if (chunk_remaining_) { |
|
eroman
2016/07/25 18:11:38
side-comment: These sort of "if" statements on sig
mmenke
2016/07/25 18:23:35
I completely agree with you. I've gone ahead and
|
| - int num = std::min(chunk_remaining_, buf_len); |
| + // Since |chunk_remaining_| is positive and |buf_len| an int, the minimum |
|
eroman
2016/07/25 18:11:38
See comment above (hard to reason about at this li
|
| + // of the two must be an int. |
| + int num = static_cast<int>( |
| + std::min(chunk_remaining_, static_cast<int64_t>(buf_len))); |
| buf_len -= num; |
| chunk_remaining_ -= num; |
| @@ -79,7 +82,7 @@ int HttpChunkedDecoder::FilterBuf(char* buf, int buf_len) { |
| result += num; |
| buf += num; |
| - // After each chunk's data there should be a CRLF |
| + // After each chunk's data there should be a CRLF. |
| if (!chunk_remaining_) |
| chunk_terminator_remaining_ = true; |
| continue; |
| @@ -189,14 +192,16 @@ int HttpChunkedDecoder::ScanForChunkRemaining(const char* buf, int buf_len) { |
| // known sites. |
| // |
| // Us: ^\X+[ ]*$ |
| -bool HttpChunkedDecoder::ParseChunkSize(const char* start, int len, int* out) { |
| +bool HttpChunkedDecoder::ParseChunkSize(const char* start, |
| + int len, |
| + int64_t* out) { |
| DCHECK_GE(len, 0); |
| // Strip trailing spaces |
| while (len && start[len - 1] == ' ') |
| len--; |
| - // Be more restrictive than HexStringToInt; |
| + // Be more restrictive than HexStringToInt64; |
| // don't allow inputs with leading "-", "+", "0x", "0X" |
| base::StringPiece chunk_size(start, len); |
| if (chunk_size.find_first_not_of("0123456789abcdefABCDEF") |
|
mmenke
2016/07/25 15:36:01
Could consider adding this to net/base/parse_numbe
|
| @@ -204,8 +209,8 @@ bool HttpChunkedDecoder::ParseChunkSize(const char* start, int len, int* out) { |
| return false; |
| } |
| - int parsed_number; |
| - bool ok = base::HexStringToInt(chunk_size, &parsed_number); |
| + int64_t parsed_number; |
| + bool ok = base::HexStringToInt64(chunk_size, &parsed_number); |
| if (ok && parsed_number >= 0) { |
| *out = parsed_number; |
| return true; |