| Index: base/pickle.h
|
| diff --git a/base/pickle.h b/base/pickle.h
|
| index b6ec116ebf68361fd4b3ab9e2f9110508e291bc2..22b8055cbae869a2d9549a385fbdc42363d6d0b3 100644
|
| --- a/base/pickle.h
|
| +++ b/base/pickle.h
|
| @@ -271,6 +271,18 @@ class BASE_EXPORT Pickle {
|
| const char* range_start,
|
| const char* range_end);
|
|
|
| + // Parse pickle header and return total size of the pickle. Data range
|
| + // doesn't need to contain entire pickle.
|
| + // Returns true if pickle header was found and parsed. Callers must check
|
| + // returned |pickle_size| for sanity (against maximum message size, etc).
|
| + // NOTE: when function successfully parses a header, but encounters an
|
| + // overflow during pickle size calculation, it sets |pickle_size| to the
|
| + // maximum size_t value and returns true.
|
| + static bool PeekNext(size_t header_size,
|
| + const char* range_start,
|
| + const char* range_end,
|
| + size_t* pickle_size);
|
| +
|
| // The allocation granularity of the payload.
|
| static const int kPayloadUnit;
|
|
|
| @@ -298,6 +310,8 @@ class BASE_EXPORT Pickle {
|
|
|
| FRIEND_TEST_ALL_PREFIXES(PickleTest, DeepCopyResize);
|
| FRIEND_TEST_ALL_PREFIXES(PickleTest, Resize);
|
| + FRIEND_TEST_ALL_PREFIXES(PickleTest, PeekNext);
|
| + FRIEND_TEST_ALL_PREFIXES(PickleTest, PeekNextOverflow);
|
| FRIEND_TEST_ALL_PREFIXES(PickleTest, FindNext);
|
| FRIEND_TEST_ALL_PREFIXES(PickleTest, FindNextWithIncompleteHeader);
|
| FRIEND_TEST_ALL_PREFIXES(PickleTest, FindNextOverflow);
|
|
|