summaryrefslogtreecommitdiffstats
path: root/ipc/ipc_channel_win.cc
diff options
context:
space:
mode:
authorapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-15 07:07:05 +0000
committerapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-15 07:07:05 +0000
commitf49733da2e302e2572c939106c7ceecf2332cd97 (patch)
tree7b2ae9859b2c7c1af7e780c94e37bf94c58c5bb4 /ipc/ipc_channel_win.cc
parent85c52dc57a57d8627872e4aa1a9ea0503b589049 (diff)
downloadchromium_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.cc2
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);