Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f43860e90c4cdd6d7208a591028a18b682b0a681
      
https://github.com/WebKit/WebKit/commit/f43860e90c4cdd6d7208a591028a18b682b0a681
  Author: Rupin Mittal <[email protected]>
  Date:   2026-03-11 (Wed, 11 Mar 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp

  Log Message:
  -----------
  StabilityTracer: Crash in callback of async IPC sent by 
WebKit::NetworkProcess::findPendingDownloadLocation
https://bugs.webkit.org/show_bug.cgi?id=309695
rdar://172248665

Reviewed by Ben Nham and Per Arne Vollan.

It looks like the crash is due to a null pointer deference. It seems like the
completion handler on this line:

return completionHandler(PolicyAction::Ignore);

in NetworkProcess::findPendingDownloadLocation is null.

This completion handler is called as part of the reply of the async IPC to sent 
to
DownloadProxy::DecideDestinationWithSuggestedFilename.

Given that NetworkProcess::findPendingDownloadLocation receives the 
completionHandler
as an rvalue reference and then moves it into the lambda, it's likely not null 
to
begin with. But the IPC message is sent with the IPC::Connection* returned by
downloadProxyConnection(), which can be a nullptr. That would cause undefined 
behavior
and could result in this crash.

So we speculatively fix this by early returning if the connection doesn't exist.

* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::findPendingDownloadLocation):

Canonical link: https://commits.webkit.org/309114@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to