Chromium Code Reviews| Index: mojo/public/c/bindings/lib/message.c |
| diff --git a/mojo/public/c/bindings/lib/message.c b/mojo/public/c/bindings/lib/message.c |
| index 9b2d27dce004f9b4f9e8c5fad1d8d3e04c960e17..cceffb87cc45c0dd93850f9b990fb07c18fbac17 100644 |
| --- a/mojo/public/c/bindings/lib/message.c |
| +++ b/mojo/public/c/bindings/lib/message.c |
| @@ -12,10 +12,10 @@ MojomValidationResult MojomMessage_ValidateHeader(const void* in_buf, |
| uint32_t in_buf_size) { |
| const struct MojomStructHeader* header = |
| (const struct MojomStructHeader*)in_buf; |
| + |
| if (in_buf_size < sizeof(struct MojomStructHeader) || |
|
viettrungluu
2016/07/28 23:03:01
For arrays, you return "illegal memory range" for
vardhan
2016/07/29 21:29:21
True -- this should be split up (but i guess the v
|
| - in_buf_size < header->num_bytes) { |
| - return MOJOM_VALIDATION_UNEXPECTED_STRUCT_HEADER; |
| - } |
| + in_buf_size < header->num_bytes) |
| + return MOJOM_VALIDATION_ILLEGAL_MEMORY_RANGE; |
| const struct MojomMessage* msg = (const struct MojomMessage*)in_buf; |
| if (header->version == 0u) { |
| @@ -47,3 +47,28 @@ MojomValidationResult MojomMessage_ValidateHeader(const void* in_buf, |
| // Accept unknown versions of the message header to be future-proof. |
| return MOJOM_VALIDATION_ERROR_NONE; |
| } |
| + |
| +MojomValidationResult MojomMessage_ValidateRequestExpectingResponse( |
| + const void* in_buf) { |
| + const struct MojomMessage* msg = (const struct MojomMessage*)in_buf; |
| + return (msg->flags & MOJOM_MESSAGE_FLAGS_EXPECTS_RESPONSE) |
| + ? MOJOM_VALIDATION_ERROR_NONE |
| + : MOJOM_VALIDATION_MESSAGE_HEADER_INVALID_FLAGS; |
| +} |
| + |
| +MojomValidationResult MojomMessage_ValidateRequestWithoutResponse( |
| + const void* in_buf) { |
| + const struct MojomMessage* msg = (const struct MojomMessage*)in_buf; |
| + return !(msg->flags & MOJOM_MESSAGE_FLAGS_EXPECTS_RESPONSE) && |
|
viettrungluu
2016/07/28 23:03:01
nit: I'd suggest always putting (...) around the e
vardhan
2016/07/29 21:29:21
Done.
|
| + !(msg->flags & MOJOM_MESSAGE_FLAGS_IS_RESPONSE) |
| + ? MOJOM_VALIDATION_ERROR_NONE |
| + : MOJOM_VALIDATION_MESSAGE_HEADER_INVALID_FLAGS; |
| +} |
| + |
| +MojomValidationResult MojomMessage_ValidateResponse( |
| + const void* in_buf) { |
| + const struct MojomMessage* msg = (const struct MojomMessage*)in_buf; |
| + return msg->flags & MOJOM_MESSAGE_FLAGS_IS_RESPONSE |
|
viettrungluu
2016/07/28 23:03:01
"
vardhan
2016/07/29 21:29:21
Done.
|
| + ? MOJOM_VALIDATION_ERROR_NONE |
| + : MOJOM_VALIDATION_MESSAGE_HEADER_INVALID_FLAGS; |
| +} |