Title: [173635] trunk/Source/WebCore
Revision
173635
Author
[email protected]
Date
2014-09-15 15:52:47 -0700 (Mon, 15 Sep 2014)

Log Message

Crash when logging in to optionshouse.com
https://bugs.webkit.org/show_bug.cgi?id=136834

Reviewed by Anders Carlsson.

No test, because I couldn't make one. I don't have a way to reproduce first-hand.

* platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::readStreamCallback):
(WebCore::SocketStreamHandle::writeStreamCallback):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (173634 => 173635)


--- trunk/Source/WebCore/ChangeLog	2014-09-15 22:47:46 UTC (rev 173634)
+++ trunk/Source/WebCore/ChangeLog	2014-09-15 22:52:47 UTC (rev 173635)
@@ -1,3 +1,16 @@
+2014-09-15  Alexey Proskuryakov  <[email protected]>
+
+        Crash when logging in to optionshouse.com
+        https://bugs.webkit.org/show_bug.cgi?id=136834
+
+        Reviewed by Anders Carlsson.
+
+        No test, because I couldn't make one. I don't have a way to reproduce first-hand.
+
+        * platform/network/cf/SocketStreamHandleCFNet.cpp:
+        (WebCore::SocketStreamHandle::readStreamCallback):
+        (WebCore::SocketStreamHandle::writeStreamCallback):
+
 2014-09-15  Jer Noble  <[email protected]>
 
         Unreviewed build fix for 32-bit builds.

Modified: trunk/Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp (173634 => 173635)


--- trunk/Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp	2014-09-15 22:47:46 UTC (rev 173634)
+++ trunk/Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp	2014-09-15 22:52:47 UTC (rev 173635)
@@ -424,6 +424,10 @@
 {
     SocketStreamHandle* handle = static_cast<SocketStreamHandle*>(clientCallBackInfo);
     ASSERT_UNUSED(stream, stream == handle->m_readStream.get());
+    // Workaround for <rdar://problem/17727073>. Keeping this below the assertion as we'd like better steps to reproduce this.
+    if (!handle->m_readStream)
+        return;
+
 #if PLATFORM(WIN)
     callOnMainThreadAndWait([&] {
         handle->readStreamCallback(type);
@@ -438,6 +442,10 @@
 {
     SocketStreamHandle* handle = static_cast<SocketStreamHandle*>(clientCallBackInfo);
     ASSERT_UNUSED(stream, stream == handle->m_writeStream.get());
+    // This wasn't seen happening in practice, yet it seems like it could, due to symmetry with read stream callback.
+    if (!handle->m_writeStream)
+        return;
+
 #if PLATFORM(WIN)
     callOnMainThreadAndWait([&] {
         handle->writeStreamCallback(type);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to