[Webkit-unassigned] [Bug 53615] New: WebKit2: Restoring session state that contains form data fails (asserts in Debug build)

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Feb 2 12:03:22 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=53615

           Summary: WebKit2: Restoring session state that contains form
                    data fails (asserts in Debug build)
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: History
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: aroben at apple.com
                CC: darin at apple.com, beidson at apple.com


To reproduce:

1. Open the attached HTML page
2. Submit the form
2. Save session state
3. Restore session state

The session state can't be restored. In a Debug build, you'll even hit an assertion in Vector::at:

            ASSERT(i < size());

Presumably this could lead to memory corruption, as we then try to memcpy off the end of the Vector's buffer.

Here's the backtrace when the assertion occurs:

>	WebKit.dll!WTF::Vector<unsigned char,0>::at(unsigned int i=0x00000000)  Line 536 + 0x29 bytes	C++
     WebKit.dll!WTF::Vector<unsigned char,0>::operator[](unsigned int i=0x00000000)  Line 545 + 0x1a bytes    C++
     WebKit.dll!CoreIPC::ArgumentDecoder::decodeBytes(WTF::Vector<unsigned char,0> & buffer=[0x00000000]())  Line 106 + 0x15 bytes    C++
     WebKit.dll!WebKit::DecoderAdapter::decodeBytes(WTF::Vector<unsigned char,0> & bytes=[0x00000000]())  Line 41    C++
     WebKit.dll!WebCore::decode(WTF::Decoder & decoder={...}, WebCore::FormDataElement & element={...})  Line 373 + 0x13 bytes    C++
     WebKit.dll!WebCore::FormData::decodeForBackForward(WTF::Decoder & decoder={...})  Line 457 + 0xd bytes    C++
     WebKit.dll!WebCore::HistoryItem::decodeBackForwardTree(const WTF::String & topURLString={file:///C:/Documents%20and%20Settings/Adam%20Roben/dev/test/simple-form.html}, const WTF::String & topTitle={{empty string}}, const WTF::String & topOriginalURLString={file:///C:/Documents%20and%20Settings/Adam%20Roben/dev/test/simple-form.html}, WTF::Decoder & decoder={...})  Line 813 + 0x10 bytes    C++
     WebKit.dll!WebKit::WebPage::restoreSession(const WebKit::SessionState & sessionState={...})  Line 969 + 0x28 bytes    C++
     WebKit.dll!WebKit::WebPage::restoreSessionAndNavigateToCurrentItem(const WebKit::SessionState & sessionState={...})  Line 986 + 0xc bytes    C++
     WebKit.dll!CoreIPC::callMemberFunction<WebKit::WebPage,void (__thiscall WebKit::WebPage::*)(WebKit::SessionState const &),WebKit::SessionState>(const CoreIPC::Arguments1<WebKit::SessionState> & args={...}, WebKit::WebPage * object=0x0ea44e00, void (const WebKit::SessionState &)* function=0x10008f94)  Line 19 + 0xf bytes    C++
     WebKit.dll!CoreIPC::handleMessage<Messages::WebPage::RestoreSessionAndNavigateToCurrentItem,WebKit::WebPage,void (__thiscall WebKit::WebPage::*)(WebKit::SessionState const &)>(CoreIPC::ArgumentDecoder * argumentDecoder=0x0ea40fd8, WebKit::WebPage * object=0x0ea44e00, void (const WebKit::SessionState &)* function=0x10008f94)  Line 222 + 0x15 bytes    C++
     WebKit.dll!WebKit::WebPage::didReceiveWebPageMessage(CoreIPC::Connection * __formal=0x04692e00, CoreIPC::MessageID messageID={...}, CoreIPC::ArgumentDecoder * arguments=0x0ea40fd8)  Line 124 + 0x2f bytes    C++
     WebKit.dll!WebKit::WebPage::didReceiveMessage(CoreIPC::Connection * connection=0x04692e00, CoreIPC::MessageID messageID={...}, CoreIPC::ArgumentDecoder * arguments=0x0ea40fd8)  Line 1676    C++
     WebKit.dll!WebKit::WebProcess::didReceiveMessage(CoreIPC::Connection * connection=0x04692e00, CoreIPC::MessageID messageID={...}, CoreIPC::ArgumentDecoder * arguments=0x0ea40fd8)  Line 537    C++
     WebKit.dll!CoreIPC::Connection::dispatchMessages()  Line 441 + 0x31 bytes    C++
     WebKit.dll!MemberFunctionWorkItem0<CoreIPC::Connection>::execute()  Line 76 + 0x10 bytes    C++
     WebKit.dll!RunLoop::performWork()  Line 63 + 0x1a bytes    C++
     WebKit.dll!RunLoop::wndProc(HWND__ * hWnd=0x000d075c, unsigned int message=0x00000401, unsigned int wParam=0x0526afa0, long lParam=0x00000000)  Line 57    C++
     WebKit.dll!RunLoop::RunLoopWndProc(HWND__ * hWnd=0x000d075c, unsigned int message=0x00000401, unsigned int wParam=0x0526afa0, long lParam=0x00000000)  Line 39 + 0x18 bytes    C++
     user32.dll!_InternalCallWinProc at 20()  + 0x28 bytes    
     user32.dll!_UserCallWinProcCheckWow at 32()  + 0xb7 bytes    
     user32.dll!_DispatchMessageWorker at 8()  + 0xdc bytes    
     user32.dll!_DispatchMessageW at 4()  + 0xf bytes    
     WebKit.dll!RunLoop::run()  Line 73 + 0xc bytes    C++
     WebKit.dll!WebKit::WebProcessMain(const WebKit::CommandLine & commandLine={...})  Line 82    C++
     WebKit.dll!WebKitMain(const WebKit::CommandLine & commandLine={...})  Line 48 + 0x9 bytes    C++
     WebKit.dll!WebKitMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, wchar_t * lpstrCmdLine=0x0002114c, int nCmdShow=0x0000000a)  Line 172 + 0x9 bytes    C++
     WebKit2WebProcess.exe!wWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, wchar_t * lpstrCmdLine=0x0002114c, int nCmdShow=0x0000000a)  Line 44 + 0x18 bytes    C++
     WebKit2WebProcess.exe!__tmainCRTStartup()  Line 589 + 0x1c bytes    C
     kernel32.dll!_BaseProcessStart at 4()  + 0x23 bytes

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list