Ignore:
Timestamp:
Jun 20, 2019, 3:52:06 PM (6 years ago)
Author:
[email protected]
Message:

WebURLSchemeHandlerProxy::loadSynchronously crash with sync request.
<rdar://problem/51862206> and https://bugs.webkit.org/show_bug.cgi?id=199063

Reviewed by Geoffrey Garen.

Don't use a DataReference for the sync reply type.

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebURLSchemeHandler.h:
  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::didComplete):

  • UIProcess/WebURLSchemeTask.h:
  • WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp:

(WebKit::WebURLSchemeHandlerProxy::loadSynchronously):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/UIProcess/WebURLSchemeTask.cpp

    r240046 r246660  
    137137   
    138138    if (isSync()) {
    139         IPC::DataReference data;
    140         if (m_syncData)
    141             data = { reinterpret_cast<const uint8_t*>(m_syncData->data()), m_syncData->size() };
    142         m_syncCompletionHandler(m_syncResponse, error, data);
     139        Vector<char> data;
     140        if (m_syncData) {
     141            data.resize(m_syncData->size());
     142            memcpy(data.data(), reinterpret_cast<const char*>(m_syncData->data()), m_syncData->size());
     143        }
     144
     145        m_syncCompletionHandler(m_syncResponse, error, WTFMove(data));
    143146        m_syncData = nullptr;
    144147    }
Note: See TracChangeset for help on using the changeset viewer.