summaryrefslogtreecommitdiff
path: root/chromium/mojo/public/cpp/bindings/lib/connector.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/mojo/public/cpp/bindings/lib/connector.cc')
-rw-r--r--chromium/mojo/public/cpp/bindings/lib/connector.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/chromium/mojo/public/cpp/bindings/lib/connector.cc b/chromium/mojo/public/cpp/bindings/lib/connector.cc
index 2766f8d65c3..59ece29ab62 100644
--- a/chromium/mojo/public/cpp/bindings/lib/connector.cc
+++ b/chromium/mojo/public/cpp/bindings/lib/connector.cc
@@ -17,6 +17,7 @@
#include "base/no_destructor.h"
#include "base/rand_util.h"
#include "base/run_loop.h"
+#include "base/strings/string_util.h"
#include "base/synchronization/lock.h"
#include "base/task/current_thread.h"
#include "base/threading/sequence_local_storage_slot.h"
@@ -154,6 +155,10 @@ Connector::Connector(ScopedMessagePipeHandle message_pipe,
outgoing_serialization_mode_(g_default_outgoing_serialization_mode),
incoming_serialization_mode_(g_default_incoming_serialization_mode),
interface_name_(interface_name),
+ header_validator_(
+ base::JoinString({interface_name ? interface_name : "Generic",
+ "MessageHeaderValidator"},
+ "")),
nesting_observer_(RunLoopNestingObserver::GetForThread()) {
if (config == MULTI_THREADED_SEND)
lock_.emplace();
@@ -469,6 +474,10 @@ MojoResult Connector::ReadMessage(Message* message) {
return MOJO_RESULT_ABORTED;
}
+ if (!header_validator_.Accept(message)) {
+ return MOJO_RESULT_ABORTED;
+ }
+
return MOJO_RESULT_OK;
}