Index: mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc |
diff --git a/mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc b/mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc |
index ae952c503f2e33f31181c30363e56311e80491ee..56680c67ce0bccf19fa80bd38cd491396df3d414 100644 |
--- a/mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc |
+++ b/mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc |
@@ -5,6 +5,7 @@ |
#include "mojo/public/cpp/bindings/lib/pipe_control_message_handler.h" |
#include "base/logging.h" |
+#include "mojo/public/cpp/bindings/error.h" |
#include "mojo/public/cpp/bindings/lib/message_builder.h" |
#include "mojo/public/cpp/bindings/lib/pipe_control_message_handler_delegate.h" |
#include "mojo/public/cpp/bindings/lib/serialization.h" |
@@ -25,8 +26,8 @@ bool PipeControlMessageHandler::IsPipeControlMessage(const Message* message) { |
return !IsValidInterfaceId(message->interface_id()); |
} |
-bool PipeControlMessageHandler::Accept(Message* message) { |
- if (!Validate(message)) |
+bool PipeControlMessageHandler::Accept(Message* message, Error* error) { |
+ if (!Validate(message, error)) |
return false; |
if (message->name() == pipe_control::kRunOrClosePipeMessageId) |
@@ -36,10 +37,12 @@ bool PipeControlMessageHandler::Accept(Message* message) { |
return false; |
} |
-bool PipeControlMessageHandler::Validate(const Message* message) { |
+bool PipeControlMessageHandler::Validate(Message* message, Error* error) { |
if (message->name() == pipe_control::kRunOrClosePipeMessageId) { |
- if (!ValidateMessageIsRequestWithoutResponse(message)) |
+ if (!ValidateMessageIsRequestWithoutResponse(message)) { |
+ *error = Error::ForBadMessage("Invalid pipe control request", message); |
return false; |
+ } |
return ValidateMessagePayload< |
pipe_control::internal::RunOrClosePipeMessageParams_Data>(message); |
} |