Bug 59328 - Crash beneath WKURLIsEqual() when reloading in MiniBrowser
Summary: Crash beneath WKURLIsEqual() when reloading in MiniBrowser
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.6
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-25 09:50 PDT by mitz
Modified: 2011-09-10 10:51 PDT (History)
4 users (show)

See Also:


Attachments
Proposed patch (1.12 KB, patch)
2011-09-10 07:33 PDT, Andreas Kling
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description mitz 2011-04-25 09:50:23 PDT
Steps to reproduce:
Run MiniBrowser
After the WebKit Open Source Project webpage loads, click the Reload button several times

Result:

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   com.apple.WebKit2             	0x0000000100022658 WTF::RefPtr<WTF::StringImpl>::get() const + 12 (RefPtr.h:60)
1   com.apple.WebKit2             	0x000000010005d999 WTF::String::impl() const + 21 (WTFString.h:126)
2   com.apple.WebKit2             	0x000000010005fbb4 WTF::operator==(WTF::String const&, WTF::String const&) + 38 (WTFString.h:365)
3   com.apple.WebKit2             	0x0000000100156429 WKURLIsEqual + 65 (WKURL.cpp:50)
4   com.yourcompany.MiniBrowser   	0x0000000100003f7d -[BrowserWindowController updateProvisionalURLForFrame:] + 81 (BrowserWindowController.m:684)
5   com.apple.WebKit2             	0x000000010008b6fc WebKit::WebLoaderClient::didFailLoadWithErrorForFrame(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, WebCore::ResourceError const&, WebKit::APIObject*) + 142 (WebLoaderClient.cpp:91)
6   com.apple.WebKit2             	0x00000001000a8421 WebKit::WebPageProxy::didFailLoadForFrame(unsigned long long, WebCore::ResourceError const&, CoreIPC::ArgumentDecoder*) + 273 (WebPageProxy.cpp:1612)
7   com.apple.WebKit2             	0x000000010016b2f0 void CoreIPC::callMemberFunction<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, WebCore::ResourceError const&, CoreIPC::ArgumentDecoder*), unsigned long long, WebCore::ResourceError>(CoreIPC::Arguments2<unsigned long long, WebCore::ResourceError> const&, CoreIPC::ArgumentDecoder*, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, WebCore::ResourceError const&, CoreIPC::ArgumentDecoder*)) + 114 (HandleMessage.h:204)
8   com.apple.WebKit2             	0x0000000100172fd3 void CoreIPC::handleMessageVariadic<Messages::WebPageProxy::DidFailLoadForFrame, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, WebCore::ResourceError const&, CoreIPC::ArgumentDecoder*)>(CoreIPC::ArgumentDecoder*, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, WebCore::ResourceError const&, CoreIPC::ArgumentDecoder*)) + 83 (HandleMessage.h:286)
9   com.apple.WebKit2             	0x0000000100169bcb WebKit::WebPageProxy::didReceiveWebPageProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 2777 (WebPageProxyMessageReceiver.cpp:180)
10  com.apple.WebKit2             	0x00000001000a96ef WebKit::WebPageProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 251 (WebPageProxy.cpp:1352)
11  com.apple.WebKit2             	0x00000001000ec99b WebKit::WebProcessProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 327 (WebProcessProxy.cpp:261)
12  com.apple.WebKit2             	0x0000000100016aee CoreIPC::Connection::dispatchMessage(CoreIPC::Connection::Message<CoreIPC::ArgumentDecoder>&) + 292 (Connection.cpp:646)
13  com.apple.WebKit2             	0x0000000100016c39 CoreIPC::Connection::dispatchMessages() + 105 (Connection.cpp:667)
14  com.apple.WebKit2             	0x00000001000190fd MemberFunctionWorkItem0<CoreIPC::Connection>::execute() + 109 (WorkItem.h:76)
15  com.apple.WebKit2             	0x0000000100052e25 RunLoop::performWork() + 119 (RunLoop.cpp:61)
16  com.apple.WebKit2             	0x0000000100053f41 RunLoop::performWork(void*) + 93 (RunLoopMac.mm:38)
17  com.apple.CoreFoundation      	0x00007fff8593e401 __CFRunLoopDoSources0 + 1361
18  com.apple.CoreFoundation      	0x00007fff8593c5f9 __CFRunLoopRun + 873
19  com.apple.CoreFoundation      	0x00007fff8593bdbf CFRunLoopRunSpecific + 575
20  com.apple.HIToolbox           	0x00007fff861f07ee RunCurrentEventLoopInMode + 333
21  com.apple.HIToolbox           	0x00007fff861f05f3 ReceiveNextEventCommon + 310
22  com.apple.HIToolbox           	0x00007fff861f04ac BlockUntilNextEventMatchingListInMode + 59
23  com.apple.AppKit              	0x00007fff8718be64 _DPSNextEvent + 718
24  com.apple.AppKit              	0x00007fff8718b7a9 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 155
25  com.apple.AppKit              	0x00007fff8715148b -[NSApplication run] + 395
26  com.apple.AppKit              	0x00007fff8714a1a8 NSApplicationMain + 364
27  com.yourcompany.MiniBrowser   	0x0000000100001c84 start + 52
Comment 1 Andreas Kling 2011-09-10 07:33:54 PDT
Created attachment 106976 [details]
Proposed patch

Add missing null check for the WKURLRef returned by WKFrameCopyProvisionalURL().
Comment 2 WebKit Review Bot 2011-09-10 10:51:21 PDT
Comment on attachment 106976 [details]
Proposed patch

Clearing flags on attachment: 106976

Committed r94909: <http://trac.webkit.org/changeset/94909>
Comment 3 WebKit Review Bot 2011-09-10 10:51:25 PDT
All reviewed patches have been landed.  Closing bug.