Closed Bug 1569756 Opened 4 months ago Closed 4 months ago

Crash in [@ mozilla::ShellExecuteByExplorer]

Categories

(Core :: Widget: Win32, defect, P1, critical)

Unspecified
Windows 10
defect

Tracking

()

RESOLVED FIXED
mozilla70
Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- fixed
firefox68 --- fixed
firefox69 --- fixed
firefox70 --- fixed

People

(Reporter: marcia, Assigned: aklotz)

References

(Regression)

Details

(Keywords: crash, regression)

Crash Data

Attachments

(1 file)

This bug is for crash report bp-d8aef9c7-6eac-4049-a8bf-269e20190725.

Seen while looking at nightly crashes - these crashes started in 20190724220024: https://bit.ly/2Ka2B7O. 12 crashes/8 installs so far.

Possible regression range based on Build ID: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=69ac304560c98a733d44a0245fe9782dc6a465e2&tochange=1da5a37de0fd1695e96a9d5e7f59fbd84d8759b2

Bug 1567614? ni on Aaron

Top 10 frames of crashing thread:

0 xul.dll static class mozilla::Result<mozilla::Ok, mozilla::WindowsError> mozilla::ShellExecuteByExplorer widget/windows/ShellHeaderOnlyUtils.h:76
1 xul.dll static class mozilla::Result<mozilla::Ok, mozilla::WindowsError> mozilla::ShellExecuteByExplorer widget/windows/ShellHeaderOnlyUtils.h:203
2 xul.dll nsMIMEInfoWin::LoadUriInternal uriloader/exthandler/win/nsMIMEInfoWin.cpp:242
3 xul.dll nsExternalHelperAppService::LoadURI uriloader/exthandler/nsExternalHelperAppService.cpp:1010
4 xul.dll mozilla::dom::ContentParent::RecvLoadURIExternal dom/ipc/ContentParent.cpp:3851
5 xul.dll mozilla::dom::PContentParent::OnMessageReceived ipc/ipdl/PContentParent.cpp:7051
6 xul.dll mozilla::ipc::MessageChannel::DispatchMessage ipc/glue/MessageChannel.cpp:2108
7 xul.dll mozilla::ipc::MessageChannel::MessageTask::Run ipc/glue/MessageChannel.cpp:1986
8 xul.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1225
9 xul.dll NS_ProcessNextEvent xpcom/threads/nsThreadUtils.cpp:486

Flags: needinfo?(aklotz)

IShellWindows::FindWindowSW may return the dreaded S_FALSE, so we need to
ensure that we're handling that.

I checked the remaining functions called by this code and none of the others
do this; this is the only call site that requires the check.

I'm not sure why we're seeing this error code. I added an explicit cast to
ensure that CSIDL_DESKTOP is being interpreted as an int, though I doubt
that this actually makes any difference.

Assignee: nobody → aklotz
Status: NEW → ASSIGNED
Flags: needinfo?(aklotz)
Priority: -- → P1
Pushed by aklotz@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/82449212da88
Check for S_FALSE after calling IShellWindows::FindWindowSW; r=jmathies

Comment on attachment 9081479 [details]
Bug 1569756: Check for S_FALSE after calling IShellWindows::FindWindowSW; r=jmathies!

Beta/Release Uplift Approval Request

  • User impact if declined: Possible crashes in rare cases
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Trivial patch, just added an additional error code check.
  • String changes made/needed: None
Attachment #9081479 - Flags: approval-mozilla-beta?
Status: ASSIGNED → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla70

Comment on attachment 9081479 [details]
Bug 1569756: Check for S_FALSE after calling IShellWindows::FindWindowSW; r=jmathies!

Fixes a crash from bug 1567614. Approved for 69.0b10.

Attachment #9081479 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Comment on attachment 9081479 [details]
Bug 1569756: Check for S_FALSE after calling IShellWindows::FindWindowSW; r=jmathies!

Beta/Release Uplift Approval Request

  • User impact if declined: Potential for crashes (but rare). Needed as follow-up to the uplifts in bug 1567614.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Trivial patch, adds additional error code check.
  • String changes made/needed: None

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: Needed as follow-up to the uplifts in bug 1567614.
  • User impact if declined: Potential for crashes (but rare). Needed as follow-up to the uplifts in bug 1567614.
  • Fix Landed on Version: 69
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Trivial patch, adds additional error code check.
  • String or UUID changes made by this patch: None
Attachment #9081479 - Flags: approval-mozilla-release?
Attachment #9081479 - Flags: approval-mozilla-esr68?

Comment on attachment 9081479 [details]
Bug 1569756: Check for S_FALSE after calling IShellWindows::FindWindowSW; r=jmathies!

needed for bug 1567614; approved for 68.0.2

Attachment #9081479 - Flags: approval-mozilla-release?
Attachment #9081479 - Flags: approval-mozilla-release+
Attachment #9081479 - Flags: approval-mozilla-esr68?
Attachment #9081479 - Flags: approval-mozilla-esr68+
You need to log in before you can comment on or make changes to this bug.