diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-15 23:06:07 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-15 23:06:07 +0000 |
commit | ef2f6ba19e773ea58b8d6b26ea80bcf6c357ea7d (patch) | |
tree | f18f441d80b4b05ad3e6bcde476fd6461e00742e /ipc/ipc_message_macros.h | |
parent | 5a05b1de6bb31e66f570b320b6b507e0e2d5798b (diff) | |
download | chromium_src-ef2f6ba19e773ea58b8d6b26ea80bcf6c357ea7d.zip chromium_src-ef2f6ba19e773ea58b8d6b26ea80bcf6c357ea7d.tar.gz chromium_src-ef2f6ba19e773ea58b8d6b26ea80bcf6c357ea7d.tar.bz2 |
Ensure that any IPC sent from a child process that couldn't be deserialized causes that process to be killed.
Today we do this only for a subset of IPCs and not all process types.
R=jar@chromium.org, tsepez@chromium.org
Review URL: https://codereview.chromium.org/283313002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270839 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/ipc_message_macros.h')
-rw-r--r-- | ipc/ipc_message_macros.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ipc/ipc_message_macros.h b/ipc/ipc_message_macros.h index d5ffff7..5bc1ad4 100644 --- a/ipc/ipc_message_macros.h +++ b/ipc/ipc_message_macros.h @@ -933,6 +933,8 @@ TRACK_RUN_IN_IPC_HANDLER(member_func); \ msg_is_ok__ = msg_class::Dispatch(&ipc_message__, obj, this, \ param__, &member_func); \ + if (!msg_is_ok__) \ + ipc_message__.set_dispatch_error(); \ } \ break; @@ -944,6 +946,8 @@ TRACK_RUN_IN_IPC_HANDLER(member_func); \ msg_is_ok__ = msg_class::DispatchDelayReply(&ipc_message__, obj, \ param__, &member_func); \ + if (!msg_is_ok__) \ + ipc_message__.set_dispatch_error(); \ } \ break; |