Changeset 223681 in webkit


Ignore:
Timestamp:
Oct 19, 2017 12:41:41 AM (6 years ago)
Author:
commit-queue@webkit.org
Message:

[curl] Segfault in WebCore::CurlRequest::setupPOST
https://bugs.webkit.org/show_bug.cgi?id=178434

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-10-19
Reviewed by Ryosuke Niwa.

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::resolveBlobReferences):
(WebCore::CurlRequest::setupPOST):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r223678 r223681  
     12017-10-19  Basuke Suzuki  <Basuke.Suzuki@sony.com>
     2
     3        [curl] Segfault in WebCore::CurlRequest::setupPOST
     4        https://bugs.webkit.org/show_bug.cgi?id=178434
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        * platform/network/curl/CurlRequest.cpp:
     9        (WebCore::CurlRequest::resolveBlobReferences):
     10        (WebCore::CurlRequest::setupPOST):
     11
    1122017-10-18  Ryosuke Niwa  <rniwa@webkit.org>
    213
  • trunk/Source/WebCore/platform/network/curl/CurlRequest.cpp

    r222828 r223681  
    392392    ASSERT(isMainThread());
    393393
    394     RefPtr<FormData> formData = request.httpBody();
    395     if (!formData)
     394    auto body = request.httpBody();
     395    if (!body || body->isEmpty())
    396396        return;
    397397
    398398    // Resolve the blob elements so the formData can correctly report it's size.
    399     formData = formData->resolveBlobReferences();
     399    RefPtr<FormData> formData = body->resolveBlobReferences();
    400400    request.setHTTPBody(WTFMove(formData));
    401401}
     
    419419    m_curlHandle->enableHttpPostRequest();
    420420
    421     auto numElements = request.httpBody()->elements().size();
     421    auto body = request.httpBody();
     422    if (!body || body->isEmpty())
     423        return;
     424
     425    auto numElements = body->elements().size();
    422426    if (!numElements)
    423427        return;
     
    425429    // Do not stream for simple POST data
    426430    if (numElements == 1) {
    427         m_postBuffer = request.httpBody()->flatten();
     431        m_postBuffer = body->flatten();
    428432        if (m_postBuffer.size())
    429433            m_curlHandle->setPostFields(m_postBuffer.data(), m_postBuffer.size());
Note: See TracChangeset for help on using the changeset viewer.