Index: third_party/mojo/src/mojo/public/python/mojo_bindings/serialization.py |
diff --git a/third_party/mojo/src/mojo/public/python/mojo_bindings/serialization.py b/third_party/mojo/src/mojo/public/python/mojo_bindings/serialization.py |
index 8f5cc67b515a7451466748e30889b3676faa337c..dac35180d3fca3142e355695bbf0016189eb3c2b 100644 |
--- a/third_party/mojo/src/mojo/public/python/mojo_bindings/serialization.py |
+++ b/third_party/mojo/src/mojo/public/python/mojo_bindings/serialization.py |
@@ -152,6 +152,10 @@ class Serialization(object): |
version_struct = self._GetStruct(version) |
entitities = version_struct.unpack_from(context.data, HEADER_STRUCT.size) |
filtered_groups = self._GetGroups(version) |
+ if ((version <= self.version and |
+ size != version_struct.size + HEADER_STRUCT.size) or |
+ size < version_struct.size + HEADER_STRUCT.size): |
+ raise DeserializationException('Struct size in incorrect.') |
position = HEADER_STRUCT.size |
for (group, value) in zip(filtered_groups, entitities): |
position = position + NeededPaddingForAlignment(position, |