Title: [249623] trunk/Source/WebKit
Revision
249623
Author
achristen...@apple.com
Date
2019-09-07 20:58:26 -0700 (Sat, 07 Sep 2019)

Log Message

Null check m_client in NetworkDataTask::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=201587
<rdar://problem/54743444>

Reviewed by Chris Dumez.

clearClient can be called at any time.  We null check it everyhere else we use it,
and we are seeing crashes at this call site.  Let's not crash.

* NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::didReceiveResponse):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (249622 => 249623)


--- trunk/Source/WebKit/ChangeLog	2019-09-08 02:29:11 UTC (rev 249622)
+++ trunk/Source/WebKit/ChangeLog	2019-09-08 03:58:26 UTC (rev 249623)
@@ -1,5 +1,19 @@
 2019-09-07  Alex Christensen  <achristen...@webkit.org>
 
+        Null check m_client in NetworkDataTask::didReceiveResponse
+        https://bugs.webkit.org/show_bug.cgi?id=201587
+        <rdar://problem/54743444>
+
+        Reviewed by Chris Dumez.
+
+        clearClient can be called at any time.  We null check it everyhere else we use it,
+        and we are seeing crashes at this call site.  Let's not crash.
+
+        * NetworkProcess/NetworkDataTask.cpp:
+        (WebKit::NetworkDataTask::didReceiveResponse):
+
+2019-09-07  Alex Christensen  <achristen...@webkit.org>
+
         Remove WebsiteDataStore::legacyDefaultDataStoreConfiguration
         https://bugs.webkit.org/show_bug.cgi?id=200054
 

Modified: trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp (249622 => 249623)


--- trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp	2019-09-08 02:29:11 UTC (rev 249622)
+++ trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp	2019-09-08 03:58:26 UTC (rev 249623)
@@ -99,7 +99,6 @@
 
 void NetworkDataTask::didReceiveResponse(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
 {
-    ASSERT(m_client);
     if (response.isHTTP09()) {
         auto url = ""
         Optional<uint16_t> port = url.port();
@@ -106,11 +105,15 @@
         if (port && !WTF::isDefaultPortForProtocol(port.value(), url.protocol())) {
             completionHandler(PolicyAction::Ignore);
             cancel();
-            m_client->didCompleteWithError({ String(), 0, url, "Cancelled load from '" + url.stringCenterEllipsizedToLength() + "' because it is using HTTP/0.9." });
+            if (m_client)
+                m_client->didCompleteWithError({ String(), 0, url, "Cancelled load from '" + url.stringCenterEllipsizedToLength() + "' because it is using HTTP/0.9." });
             return;
         }
     }
-    m_client->didReceiveResponse(WTFMove(response), WTFMove(completionHandler));
+    if (m_client)
+        m_client->didReceiveResponse(WTFMove(response), WTFMove(completionHandler));
+    else
+        completionHandler(PolicyAction::Ignore);
 }
 
 bool NetworkDataTask::shouldCaptureExtraNetworkLoadMetrics() const
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to