diff options
author | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-15 07:07:05 +0000 |
---|---|---|
committer | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-15 07:07:05 +0000 |
commit | f49733da2e302e2572c939106c7ceecf2332cd97 (patch) | |
tree | 7b2ae9859b2c7c1af7e780c94e37bf94c58c5bb4 /ipc/ipc_channel_win.cc | |
parent | 85c52dc57a57d8627872e4aa1a9ea0503b589049 (diff) | |
download | chromium_src-f49733da2e302e2572c939106c7ceecf2332cd97.zip chromium_src-f49733da2e302e2572c939106c7ceecf2332cd97.tar.gz chromium_src-f49733da2e302e2572c939106c7ceecf2332cd97.tar.bz2 |
Windows: Do not handle async read completions on IPC channel while the channel is being closed.
This resulted in messages being dispatched to objects while they were closing the IPC channel, potentially when they were in a partially destroyed state, leading to a crash.
BUG=165269
Review URL: https://chromiumcodereview.appspot.com/11840003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176818 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/ipc_channel_win.cc')
-rw-r--r-- | ipc/ipc_channel_win.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ipc/ipc_channel_win.cc b/ipc/ipc_channel_win.cc index afed565..c2415f3 100644 --- a/ipc/ipc_channel_win.cc +++ b/ipc/ipc_channel_win.cc @@ -437,7 +437,7 @@ void Channel::ChannelImpl::OnIOCompleted(MessageLoopForIO::IOContext* context, input_state_.is_pending = false; if (!bytes_transfered) ok = false; - else + else if (pipe_ != INVALID_HANDLE_VALUE) ok = AsyncReadComplete(bytes_transfered); } else { DCHECK(!bytes_transfered); |