Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1255032f575457a3a8453c04f7d0f76ac291c253
https://github.com/WebKit/WebKit/commit/1255032f575457a3a8453c04f7d0f76ac291c253
Author: Chris Dumez <[email protected]>
Date: 2024-10-07 (Mon, 07 Oct 2024)
Changed paths:
M Source/WebCore/platform/network/cf/DNSResolveQueueCFNet.cpp
Log Message:
-----------
Regression(284012@main) Crash under DNSResolveQueueCFNet::performDNSLookup()
https://bugs.webkit.org/show_bug.cgi?id=280987
rdar://137067072
Reviewed by Per Arne Vollan.
284012@main introduced a timeout timer for DNS resolution in
DNSResolveQueueCFNet::performDNSLookup().
When the timer would fire, it would cancel the DNS resolution by calling
`nw_resolver_cancel()` and
THEN call the DNS resolution completion handler.
The issue is that the timer itself is owned by the block passed to
nw_resolver_set_update_handler().
When calling `nw_resolver_cancel()`, this block would get destroyed, which in
turns would destroy
the timeout timer and thus its lambda. Then, the timer lambda would try to call
the completion
handler after it's already been deallocated.
* Source/WebCore/platform/network/cf/DNSResolveQueueCFNet.cpp:
(WebCore::DNSResolveQueueCFNet::performDNSLookup):
Canonical link: https://commits.webkit.org/284776@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes