diff options
Diffstat (limited to 'chromium/mojo/edk/system/data_pipe_consumer_dispatcher.cc')
-rw-r--r-- | chromium/mojo/edk/system/data_pipe_consumer_dispatcher.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/chromium/mojo/edk/system/data_pipe_consumer_dispatcher.cc b/chromium/mojo/edk/system/data_pipe_consumer_dispatcher.cc index 7bf0b0177ac..158b0e17e3e 100644 --- a/chromium/mojo/edk/system/data_pipe_consumer_dispatcher.cc +++ b/chromium/mojo/edk/system/data_pipe_consumer_dispatcher.cc @@ -535,6 +535,11 @@ void DataPipeConsumerDispatcher::UpdateSignalsStateNoLock() { if (rv != ports::OK) peer_closed_ = true; if (message) { + if (message->num_payload_bytes() < sizeof(DataPipeControlMessage)) { + peer_closed_ = true; + break; + } + const DataPipeControlMessage* m = static_cast<const DataPipeControlMessage*>( message->payload_bytes()); |