Title: [283846] trunk/Source/WebKit
- Revision
- 283846
- Author
- [email protected]
- Date
- 2021-10-08 15:57:14 -0700 (Fri, 08 Oct 2021)
Log Message
Fix crash in NetworkProcess preconnect due to dereferencing deallocated session
https://bugs.webkit.org/show_bug.cgi?id=231456
<rdar://problem/83752148>
Reviewed by Chris Dumez.
We capture a raw NetworkSession reference in the preconnect completion handler. This
reference could point to a deallocated object if the NetworkSession dies before the
preconnect finishes.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::preconnectTo):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (283845 => 283846)
--- trunk/Source/WebKit/ChangeLog 2021-10-08 22:43:49 UTC (rev 283845)
+++ trunk/Source/WebKit/ChangeLog 2021-10-08 22:57:14 UTC (rev 283846)
@@ -1,3 +1,18 @@
+2021-10-08 Ben Nham <[email protected]>
+
+ Fix crash in NetworkProcess preconnect due to dereferencing deallocated session
+ https://bugs.webkit.org/show_bug.cgi?id=231456
+ <rdar://problem/83752148>
+
+ Reviewed by Chris Dumez.
+
+ We capture a raw NetworkSession reference in the preconnect completion handler. This
+ reference could point to a deallocated object if the NetworkSession dies before the
+ preconnect finishes.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::preconnectTo):
+
2021-10-08 John Pascoe <[email protected]>
Update getAllLocalAuthenticatorCredentials query according to internal needs
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (283845 => 283846)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2021-10-08 22:43:49 UTC (rev 283845)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2021-10-08 22:57:14 UTC (rev 283846)
@@ -1388,8 +1388,9 @@
parameters.shouldPreconnectOnly = PreconnectOnly::Yes;
networkSession->networkLoadScheduler().startedPreconnectForMainResource(url, userAgent);
- auto task = new PreconnectTask(*networkSession, WTFMove(parameters), [networkSession, url, userAgent](const WebCore::ResourceError& error) {
- networkSession->networkLoadScheduler().finishedPreconnectForMainResource(url, userAgent, error);
+ auto task = new PreconnectTask(*networkSession, WTFMove(parameters), [weakNetworkSession = makeWeakPtr(*networkSession), url, userAgent](const WebCore::ResourceError& error) {
+ if (weakNetworkSession)
+ weakNetworkSession->networkLoadScheduler().finishedPreconnectForMainResource(url, userAgent, error);
});
task->setTimeout(10_s);
task->start();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes