WebKit Bugzilla
Attachment 357963 Details for
Bug 192989
: Crash in com.apple.WebKit: WebKit::WebResourceLoader::willSendRequest + 223
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192989-20181221115622.patch (text/plain), 2.61 KB, created by
Keith Rollin
on 2018-12-21 11:56:23 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Keith Rollin
Created:
2018-12-21 11:56:23 PST
Size:
2.61 KB
patch
obsolete
>Subversion Revision: 239461 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 6f5c5959550a02b6e1ec4c74605ea0d6ff4b22ed..da6e351be227f15d305fd71440345cbf33f1f358 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,18 @@ >+2018-12-21 Keith Rollin <krollin@apple.com> >+ >+ Crash in com.apple.WebKit: WebKit::WebResourceLoader::willSendRequest + 223 >+ https://bugs.webkit.org/show_bug.cgi?id=192989 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ willSendRequest is calling maybeLoadFallbackForRedirect, which can >+ delete âthisâ. After that, some new logging code tries to access >+ âthisâ and causes the crash. Fix this by adjusting the scope of a >+ "protectedThis". >+ >+ * WebProcess/Network/WebResourceLoader.cpp: >+ (WebKit::WebResourceLoader::willSendRequest): >+ > 2018-12-20 Chris Dumez <cdumez@apple.com> > > Use Optional::valueOr() instead of Optional::value_or() >diff --git a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp >index 97a0a33d9c079053092f76335d68fcdf565d5068..1309dc737088ec7aea06a37edb523f1e036c17f1 100644 >--- a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp >+++ b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp >@@ -85,6 +85,8 @@ void WebResourceLoader::detachFromCoreLoader() > > void WebResourceLoader::willSendRequest(ResourceRequest&& proposedRequest, ResourceResponse&& redirectResponse) > { >+ Ref<WebResourceLoader> protectedThis(*this); >+ > LOG(Network, "(WebProcess) WebResourceLoader::willSendRequest to '%s'", proposedRequest.url().string().latin1().data()); > RELEASE_LOG_IF_ALLOWED("willSendRequest: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); > >@@ -93,7 +95,7 @@ void WebResourceLoader::willSendRequest(ResourceRequest&& proposedRequest, Resou > return; > } > >- m_coreLoader->willSendRequest(WTFMove(proposedRequest), redirectResponse, [this, protectedThis = makeRef(*this)](ResourceRequest&& request) { >+ m_coreLoader->willSendRequest(WTFMove(proposedRequest), redirectResponse, [this, protectedThis = WTFMove(protectedThis)](ResourceRequest&& request) { > if (!m_coreLoader || !m_coreLoader->identifier()) { > RELEASE_LOG_IF_ALLOWED("willSendRequest: exiting early because no coreloader or identifier (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); > return;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192989
: 357963