Index: ipc/ipc_message_utils_unittest.cc |
diff --git a/ipc/ipc_message_utils_unittest.cc b/ipc/ipc_message_utils_unittest.cc |
index 867768089ba845888e1396232f3933483d811072..c1b83e62e99f933abd59e5ac0e58c3fa5845238d 100644 |
--- a/ipc/ipc_message_utils_unittest.cc |
+++ b/ipc/ipc_message_utils_unittest.cc |
@@ -255,5 +255,27 @@ TEST(IPCMessageUtilsTest, FlatMap) { |
EXPECT_EQ(input, output); |
} |
+TEST(IPCMessageUtilsTest, InvalidPickleShouldNotCrashFlatMapDeserialization) { |
+ base::Pickle pickle; |
+ IPC::WriteParam(&pickle, INT_MAX); |
+ IPC::WriteParam(&pickle, 0); |
+ IPC::WriteParam(&pickle, 0); |
+ |
+ base::PickleIterator iter(pickle); |
+ base::flat_map<int, int> output; |
+ EXPECT_FALSE(IPC::ReadParam(&pickle, &iter, &output)); |
+} |
+ |
+TEST(IPCMessageUtilsTest, InvalidPickleShouldNotCrashMapDeserialization) { |
+ base::Pickle pickle; |
+ IPC::WriteParam(&pickle, INT_MAX); |
+ IPC::WriteParam(&pickle, 0); |
+ IPC::WriteParam(&pickle, 0); |
+ |
+ base::PickleIterator iter(pickle); |
+ std::map<int, int> output; |
+ EXPECT_FALSE(IPC::ReadParam(&pickle, &iter, &output)); |
+} |
+ |
} // namespace |
} // namespace IPC |