Changeset 249623 in webkit


Ignore:
Timestamp:
Sep 7, 2019 8:58:26 PM (5 years ago)
Author:
achristensen@apple.com
Message:

Null check m_client in NetworkDataTask::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=201587
<rdar://problem/54743444>

Reviewed by Chris Dumez.

clearClient can be called at any time. We null check it everyhere else we use it,
and we are seeing crashes at this call site. Let's not crash.

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::didReceiveResponse):

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r249622 r249623  
     12019-09-07  Alex Christensen  <achristensen@webkit.org>
     2
     3        Null check m_client in NetworkDataTask::didReceiveResponse
     4        https://bugs.webkit.org/show_bug.cgi?id=201587
     5        <rdar://problem/54743444>
     6
     7        Reviewed by Chris Dumez.
     8
     9        clearClient can be called at any time.  We null check it everyhere else we use it,
     10        and we are seeing crashes at this call site.  Let's not crash.
     11
     12        * NetworkProcess/NetworkDataTask.cpp:
     13        (WebKit::NetworkDataTask::didReceiveResponse):
     14
    1152019-09-07  Alex Christensen  <achristensen@webkit.org>
    216
  • trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp

    r249096 r249623  
    100100void NetworkDataTask::didReceiveResponse(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
    101101{
    102     ASSERT(m_client);
    103102    if (response.isHTTP09()) {
    104103        auto url = response.url();
     
    107106            completionHandler(PolicyAction::Ignore);
    108107            cancel();
    109             m_client->didCompleteWithError({ String(), 0, url, "Cancelled load from '" + url.stringCenterEllipsizedToLength() + "' because it is using HTTP/0.9." });
     108            if (m_client)
     109                m_client->didCompleteWithError({ String(), 0, url, "Cancelled load from '" + url.stringCenterEllipsizedToLength() + "' because it is using HTTP/0.9." });
    110110            return;
    111111        }
    112112    }
    113     m_client->didReceiveResponse(WTFMove(response), WTFMove(completionHandler));
     113    if (m_client)
     114        m_client->didReceiveResponse(WTFMove(response), WTFMove(completionHandler));
     115    else
     116        completionHandler(PolicyAction::Ignore);
    114117}
    115118
Note: See TracChangeset for help on using the changeset viewer.