Index: mojo/system/core.cc |
diff --git a/mojo/system/core.cc b/mojo/system/core.cc |
index 827d96a327b157168cb7dd0cd7d7defddb435de7..47ad0a492c46d5d000084383a68413b0ebf4a22d 100644 |
--- a/mojo/system/core.cc |
+++ b/mojo/system/core.cc |
@@ -138,15 +138,24 @@ MojoResult Core::WaitMany(const MojoHandle* handles, |
return WaitManyInternal(handles, flags, num_handles, deadline); |
} |
-MojoResult Core::CreateMessagePipe(MojoHandle* message_pipe_handle0, |
+MojoResult Core::CreateMessagePipe(const MojoCreateMessagePipeOptions* options, |
+ MojoHandle* message_pipe_handle0, |
MojoHandle* message_pipe_handle1) { |
+ MojoCreateMessagePipeOptions validated_options = {}; |
+ // This will verify the |options| pointer. |
+ MojoResult result = MessagePipeDispatcher::ValidateCreateOptions( |
+ options, &validated_options); |
+ if (result != MOJO_RESULT_OK) |
+ return result; |
if (!VerifyUserPointer<MojoHandle>(message_pipe_handle0)) |
return MOJO_RESULT_INVALID_ARGUMENT; |
if (!VerifyUserPointer<MojoHandle>(message_pipe_handle1)) |
return MOJO_RESULT_INVALID_ARGUMENT; |
- scoped_refptr<MessagePipeDispatcher> dispatcher0(new MessagePipeDispatcher()); |
- scoped_refptr<MessagePipeDispatcher> dispatcher1(new MessagePipeDispatcher()); |
+ scoped_refptr<MessagePipeDispatcher> dispatcher0( |
+ new MessagePipeDispatcher(validated_options)); |
+ scoped_refptr<MessagePipeDispatcher> dispatcher1( |
+ new MessagePipeDispatcher(validated_options)); |
std::pair<MojoHandle, MojoHandle> handle_pair; |
{ |