| Index: base/metrics/field_trial.cc
|
| diff --git a/base/metrics/field_trial.cc b/base/metrics/field_trial.cc
|
| index dbba4289fe4706e6eb529df32f06a09c8e0e562e..2d07818d80da6b5685ea2640777ca5ee71bf4fe5 100644
|
| --- a/base/metrics/field_trial.cc
|
| +++ b/base/metrics/field_trial.cc
|
| @@ -1127,6 +1127,7 @@ std::string FieldTrialList::SerializeSharedMemoryHandleMetadata(
|
|
|
| base::UnguessableToken guid = shm.GetGUID();
|
| ss << guid.GetHighForSerialization() << "," << guid.GetLowForSerialization();
|
| + ss << "," << shm.GetSize();
|
| return ss.str();
|
| }
|
|
|
| @@ -1137,7 +1138,7 @@ SharedMemoryHandle FieldTrialList::DeserializeSharedMemoryHandleMetadata(
|
| std::vector<base::StringPiece> tokens = base::SplitStringPiece(
|
| switch_value, ",", base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL);
|
|
|
| - if (tokens.size() != 3)
|
| + if (tokens.size() != 4)
|
| return SharedMemoryHandle();
|
|
|
| int field_trial_handle = 0;
|
| @@ -1149,7 +1150,11 @@ SharedMemoryHandle FieldTrialList::DeserializeSharedMemoryHandleMetadata(
|
| if (!DeserializeGUIDFromStringPieces(tokens[1], tokens[2], &guid))
|
| return SharedMemoryHandle();
|
|
|
| - return SharedMemoryHandle(handle, guid);
|
| + int size;
|
| + if (!base::StringToInt(tokens[3], &size))
|
| + return SharedMemoryHandle();
|
| +
|
| + return SharedMemoryHandle(handle, static_cast<size_t>(size), guid);
|
| }
|
| #endif // defined(OS_WIN)
|
|
|
| @@ -1161,14 +1166,19 @@ SharedMemoryHandle FieldTrialList::DeserializeSharedMemoryHandleMetadata(
|
| std::vector<base::StringPiece> tokens = base::SplitStringPiece(
|
| switch_value, ",", base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL);
|
|
|
| - if (tokens.size() != 2)
|
| + if (tokens.size() != 3)
|
| return SharedMemoryHandle();
|
|
|
| base::UnguessableToken guid;
|
| if (!DeserializeGUIDFromStringPieces(tokens[0], tokens[1], &guid))
|
| return SharedMemoryHandle();
|
|
|
| - return SharedMemoryHandle(FileDescriptor(fd, true), guid);
|
| + int size;
|
| + if (!base::StringToInt(tokens[2], &size))
|
| + return SharedMemoryHandle();
|
| +
|
| + return SharedMemoryHandle(FileDescriptor(fd, true), static_cast<size_t>(size),
|
| + guid);
|
| }
|
| #endif // defined(OS_POSIX) && !defined(OS_NACL)
|
|
|
|
|