Closed Bug 1766432 Opened 3 years ago Closed 2 years ago

Enable ACG on utility audio decoder for x86 builds (and mingw64 ?)

Categories

(Core :: Security: Process Sandboxing, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
107 Branch
Tracking Status
firefox107 --- fixed

People

(Reporter: gerard-majax, Assigned: yannis)

References

(Blocks 1 open bug)

Details

Attachments

(4 files)

In bug 1765372 we have been able to enable arbitrary code guard, but Utility AudioDecoder would fail to start on 32-bits systems because of hitting this:

[task 2022-04-26T08:48:03.133Z] 08:48:03     INFO - PROCESS-CRASH | ipc/glue/test/browser/browser_utility_multipleAudio.js | application crashed [@ MSAudDecMFT.dll + 0x44723]
[task 2022-04-26T08:48:03.133Z] 08:48:03     INFO - Crash dump filename: C:\Users\task_165095986176701\AppData\Local\Temp\tmpayzl9cxr.mozrunner\minidumps\54976024-cc7e-4c3b-97a0-af3ce94e6328.dmp
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO - Operating system: Windows NT
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO -                   10.0.19041
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO - CPU: x86
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO -      GenuineIntel family 6 model 85 stepping 7
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO -      8 CPUs
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO - 
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO - Crash reason:  EXCEPTION_ACCESS_VIOLATION_READ
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO - Crash address: 0x0
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO - Process uptime: 0 seconds
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO - 
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO - Thread 0 MainThread (crashed)
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO -  0  MSAudDecMFT.dll + 0x44723
[task 2022-04-26T08:48:03.134Z] 08:48:03     INFO -      eip = 0x6f434723    esp = 0x053fcc68    ebp = 0x053fceb4    ebx = 0x053fcef4
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -      esi = 0x760ca850    edi = 0x053fcca8    eax = 0x00000000    ecx = 0x80004002
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -      edx = 0x00000000 eflags = 0x00010246
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -     Found by: given as instruction pointer in context
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -  1  MSAudDecMFT.dll + 0x3b017
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -      eip = 0x6f42b018    esp = 0x053fcebc    ebp = 0x053fced0
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -     Found by: previous frame's frame pointer
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -  2  MSAudDecMFT.dll + 0x289fc
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -      eip = 0x6f4189fd    esp = 0x053fced8    ebp = 0x053fcf0c
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -     Found by: previous frame's frame pointer
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -  3  MSAudDecMFT.dll + 0x28729
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -      eip = 0x6f41872a    esp = 0x053fcf14    ebp = 0x053fcf34
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -     Found by: previous frame's frame pointer
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -  4  MSAudDecMFT.dll + 0x286cc
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -      eip = 0x6f4186cd    esp = 0x053fcf3c    ebp = 0x053fcf48
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -     Found by: previous frame's frame pointer
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -  5  MSAudDecMFT.dll + 0x2553c
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -      eip = 0x6f41553d    esp = 0x053fcf50    ebp = 0x053fd0fc
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -     Found by: previous frame's frame pointer
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -  6  MSAudDecMFT.dll + 0x2ba14
[task 2022-04-26T08:48:03.135Z] 08:48:03     INFO -      eip = 0x6f41ba15    esp = 0x053fd104    ebp = 0x053fd124
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -     Found by: previous frame's frame pointer
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -  7  MSAudDecMFT.dll + 0x2b930
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -      eip = 0x6f41b931    esp = 0x053fd12c    ebp = 0x053fd158
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -     Found by: previous frame's frame pointer
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -  8  MSAudDecMFT.dll + 0x2b60e
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -      eip = 0x6f41b60f    esp = 0x053fd160    ebp = 0x053fd178
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -     Found by: previous frame's frame pointer
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -  9  combase.dll!CServerContextActivator::CreateInstance(IUnknown*, IActivationPropertiesIn*, IActivationPropertiesOut**) [actvator.cxx : 881 + 0x1]
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -      eip = 0x75f84bac    esp = 0x053fd180    ebp = 0x053fd278
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -     Found by: previous frame's frame pointer
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO - 10  combase.dll!ActivationPropertiesIn::DelegateCreateInstance(IUnknown*, IActivationPropertiesOut**) [actprops.cxx : 1931 + 0x10]
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -      eip = 0x75f91ed5    esp = 0x053fd280    ebp = 0x053fd2c4
[task 2022-04-26T08:48:03.136Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO - 11  combase.dll!CApartmentActivator::CreateInstance(IUnknown*, IActivationPropertiesIn*, IActivationPropertiesOut**) [actvator.cxx : 2168 + 0x1e]
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO -      eip = 0x75f843ef    esp = 0x053fd2cc    ebp = 0x053fd324
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO - 12  combase.dll!CProcessActivator::CCICallback(unsigned long, IUnknown*, ActivationPropertiesIn*, IActivationPropertiesIn*, IActivationPropertiesOut**) [actvator.cxx : 1640 + 0x1c]
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO -      eip = 0x75f83bea    esp = 0x053fd32c    ebp = 0x053fd350
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO - 13  combase.dll!CProcessActivator::AttemptActivation(ActivationPropertiesIn*, IUnknown*, IActivationPropertiesIn*, IActivationPropertiesOut**, HRESULT (CProcessActivator::*)(unsigned long, IUnknown*, ActivationPropertiesIn*, IActivationPropertiesIn*, IActivationPropertiesOut**), unsigned long) [actvator.cxx : 1519 + 0x2]
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO -      eip = 0x76001595    esp = 0x053fd358    ebp = 0x053fd370
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO - 14  combase.dll!CProcessActivator::ActivateByContext(ActivationPropertiesIn*, IUnknown*, IActivationPropertiesIn*, IActivationPropertiesOut**, HRESULT (CProcessActivator::*)(unsigned long, IUnknown*, ActivationPropertiesIn*, IActivationPropertiesIn*, IActivationPropertiesOut**)) [actvator.cxx : 1371 + 0x29]
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO -      eip = 0x7600144d    esp = 0x053fd378    ebp = 0x053fd3b0
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO - 15  combase.dll!CProcessActivator::CreateInstance(IUnknown*, IActivationPropertiesIn*, IActivationPropertiesOut**) [actvator.cxx : 1258 + 0x28]
[task 2022-04-26T08:48:03.137Z] 08:48:03     INFO -      eip = 0x760013d1    esp = 0x053fd3b8    ebp = 0x053fd3e0
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO - 16  combase.dll!ActivationPropertiesIn::DelegateCreateInstance(IUnknown*, IActivationPropertiesOut**) [actprops.cxx : 1931 + 0x2c]
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO -      eip = 0x75f91e9d    esp = 0x053fd3e8    ebp = 0x053fd42c
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO - 17  combase.dll!CClientContextActivator::CreateInstance(IUnknown*, IActivationPropertiesIn*, IActivationPropertiesOut**) [actvator.cxx : 566 + 0x1b]
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO -      eip = 0x75f9299d    esp = 0x053fd434    ebp = 0x053fd690
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO - 18  combase.dll!ActivationPropertiesIn::DelegateCreateInstance(IUnknown*, IActivationPropertiesOut**) [actprops.cxx : 1931 + 0x33]
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO -      eip = 0x75f91ea4    esp = 0x053fd698    ebp = 0x053fd6dc
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO - 19  combase.dll!ICoCreateInstanceEx(_GUID const&, IUnknown*, unsigned long, _COSERVERINFO*, unsigned long, unsigned long, tagMULTI_QI*, ActivationPropertiesIn*) [objact.cxx : 2031 + 0x1e]
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO -      eip = 0x75fbd992    esp = 0x053fd6e4    ebp = 0x053fe228
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.138Z] 08:48:03     INFO - 20  combase.dll!static CComActivator::DoCreateInstance(_GUID const&, IUnknown*, unsigned long, _COSERVERINFO*, unsigned long, tagMULTI_QI*, ActivationPropertiesIn*) [immact.hxx : 386 + 0x20]
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -      eip = 0x75fbcc1b    esp = 0x053fe230    ebp = 0x053fe324
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO - 21  combase.dll!CoCreateInstance(_GUID const&, IUnknown*, unsigned long, _GUID const&, void**) [actapi.cxx : 121 + 0x7d]
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -      eip = 0x75fbca2e    esp = 0x053fe32c    ebp = 0x053fe364
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO - 22  xul.dll!mozilla::mscom::wrapped::CoCreateInstance(_GUID const&, IUnknown*, unsigned long, _GUID const&, void**) [COMWrappers.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 88 + 0x10]
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -      eip = 0x65159067    esp = 0x053fe36c    ebp = 0x053fe38c
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO - 23  xul.dll!mozilla::MFTDecoder::Create(_GUID const&) [MFTDecoder.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 34 + 0xf]
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -      eip = 0x676d0157    esp = 0x053fe394    ebp = 0x053fe3b4    ebx = 0x0592e400
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -      esi = 0x0592e3d0    edi = 0x00000000
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO - 24  xul.dll!static mozilla::WMFDecoderModule::CreateMFTDecoder(mozilla::WMFStreamType const&, RefPtr<mozilla::MFTDecoder>&) [WMFDecoderModule.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 243 + 0x9]
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -      eip = 0x676d51d5    esp = 0x053fe3bc    ebp = 0x053fe514    ebx = 0x053fe534
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -      esi = 0x80004005    edi = 0x053fe530
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.139Z] 08:48:03     INFO - 25  xul.dll!mozilla::WMFDecoderModule::Init::<lambda_13>::operator()() const [WMFDecoderModule.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 136 + 0x6]
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      eip = 0x676df8a6    esp = 0x053fe51c    ebp = 0x053fe548    ebx = 0x053fe530
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      esi = 0x00000006    edi = 0x053fe534
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO - 26  xul.dll!static mozilla::WMFDecoderModule::Init() [WMFDecoderModule.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 128 + 0xd]
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      eip = 0x676d5f3f    esp = 0x053fe550    ebp = 0x053fe570    ebx = 0x053fe600
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      esi = 0x059fe3a0    edi = 0x053fe550
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO - 27  xul.dll!static mozilla::PDMInitializer::InitPDMs() [PDMFactory.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 199 + 0x13]
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      eip = 0x67663780    esp = 0x053fe578    ebp = 0x053fe578    ebx = 0x053fe600
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      esi = 0x059fe3a0    edi = 0x059fe3b4
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO - 28  xul.dll!mozilla::PDMFactory::PDMFactory() [PDMFactory.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 283 + 0x4]
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      eip = 0x67663904    esp = 0x053fe580    ebp = 0x053fe594    ebx = 0x053fe600
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      esi = 0x059fe3a0    edi = 0x059fe3b4
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO - 29  xul.dll!mozilla::PDMFactory::Supported::<lambda_13>::operator()() const [PDMFactory.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 732 + 0x13]
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      eip = 0x67666429    esp = 0x053fe59c    ebp = 0x053fe5b8    ebx = 0x053fe600
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      esi = 0x6dbda550    edi = 0x059fe3a0
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO - 30  xul.dll!static mozilla::PDMFactory::Supported(bool) [PDMFactory.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 778 + 0x23]
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      eip = 0x676663df    esp = 0x053fe5c0    ebp = 0x053fe5e0    ebx = 0x053fe600
[task 2022-04-26T08:48:03.140Z] 08:48:03     INFO -      esi = 0x053fe5f0    edi = 0x053fe5f0
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO - 31  xul.dll!mozilla::ipc::UtilityAudioDecoderParent::Start(mozilla::ipc::Endpoint<mozilla::ipc::PUtilityAudioDecoderParent>&&) [UtilityAudioDecoderParent.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 60 + 0x12]
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -      eip = 0x650c7e71    esp = 0x053fe5e8    ebp = 0x053fe618    ebx = 0x053fe690
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -      esi = 0x059a0d30    edi = 0x053fe5f0
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO - 32  xul.dll!mozilla::ipc::UtilityProcessChild::RecvStartUtilityAudioDecoderService(mozilla::ipc::Endpoint<mozilla::ipc::PUtilityAudioDecoderParent>&&) [UtilityProcessChild.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 212 + 0x9]
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -      eip = 0x650c8aa8    esp = 0x053fe620    ebp = 0x053fe640    ebx = 0x053fe690
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -      esi = 0x05967740    edi = 0x059a0d30
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO - 33  xul.dll!mozilla::ipc::PUtilityProcessChild::OnMessageReceived(IPC::Message const&) [PUtilityProcessChild.cpp: : 517 + 0x6]
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -      eip = 0x651365df    esp = 0x053fe648    ebp = 0x053fe718    ebx = 0x053fe6a0
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -      esi = 0x053fe650    edi = 0x053fe678
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO - 34  xul.dll!mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) [MessageChannel.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 1707 + 0x19]
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -      eip = 0x650aa418    esp = 0x053fe720    ebp = 0x053fe750    ebx = 0x651354f0
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -      esi = 0x00000001    edi = 0x05906938
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO - 35  xul.dll!mozilla::ipc::MessageChannel::DispatchMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message&&) [MessageChannel.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 1632 + 0xb]
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -      eip = 0x650a8f6f    esp = 0x053fe758    ebp = 0x053fe7f0    ebx = 0x64395b60
[task 2022-04-26T08:48:03.141Z] 08:48:03     INFO -      esi = 0x053fe760    edi = 0x05967740
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO - 36  xul.dll!mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::ipc::MessageChannel::MessageTask&) [MessageChannel.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 1493 + 0x8]
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO -      eip = 0x650a9500    esp = 0x053fe7f8    ebp = 0x053fe820    ebx = 0x05906938
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO -      esi = 0x0596779c    edi = 0x05906900
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO - 37  xul.dll!mozilla::ipc::MessageChannel::MessageTask::Run() [MessageChannel.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 1528 + 0x11]
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO -      eip = 0x650a9817    esp = 0x053fe828    ebp = 0x053fe844    ebx = 0x059046a0
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO -      esi = 0x059046a0    edi = 0x05906900
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO - 38  xul.dll!mozilla::RunnableTask::Run() [TaskController.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 467 + 0xd]
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO -      eip = 0x647a38a0    esp = 0x053fe84c    ebp = 0x053feca8    ebx = 0x0592e500
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO -      esi = 0x0592e5b0    edi = 0x05906900
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO - 39  xul.dll!mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex &> const&) [TaskController.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 780 + 0x10]
[task 2022-04-26T08:48:03.142Z] 08:48:03     INFO -      eip = 0x64783d75    esp = 0x053fecb0    ebp = 0x053feeac    ebx = 0x0592e5b0
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -      esi = 0x647a37b0    edi = 0x0596acc8
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO - 40  xul.dll!mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex &> const&) [TaskController.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 612 + 0x9]
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -      eip = 0x64782578    esp = 0x053feeb4    ebp = 0x053feefc    ebx = 0x0596ac00
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -      esi = 0x0596ac00    edi = 0x053feff0
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO - 41  xul.dll!mozilla::TaskController::ProcessPendingMTTask(bool) [TaskController.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 390 + 0x7]
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -      eip = 0x64782856    esp = 0x053fef04    ebp = 0x053fef28    ebx = 0x05900101
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -      esi = 0x0596ac00    edi = 0x053feff0
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO - 42  xul.dll!mozilla::detail::RunnableFunction<`lambda at /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:127:7'>::Run() [nsThreadUtils.h:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 531 + 0x10]
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -      eip = 0x647a8764    esp = 0x053fef30    ebp = 0x053fef34    ebx = 0x05900101
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -      esi = 0x05970100    edi = 0x053feff0
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO - 43  xul.dll!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 1180 + 0xd]
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -      eip = 0x64796571    esp = 0x053fef3c    ebp = 0x053ff070    ebx = 0x05900101
[task 2022-04-26T08:48:03.143Z] 08:48:03     INFO -      esi = 0x05970100    edi = 0x053feff0
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO - 44  xul.dll!NS_ProcessNextEvent(nsIThread*, bool) [nsThreadUtils.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 465 + 0x15]
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO -      eip = 0x6479c501    esp = 0x053ff078    ebp = 0x053ff094    ebx = 0x05902b01
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO -      esi = 0x059730e0    edi = 0x05902bb0
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO - 45  xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) [MessagePump.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 107 + 0x9]
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO -      eip = 0x650ad84f    esp = 0x053ff09c    ebp = 0x053ff0c8    ebx = 0x05902b00
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO -      esi = 0x053ff380    edi = 0x05902bb0
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO - 46  xul.dll!MessageLoop::RunInternal() [message_loop.cc:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 380 + 0x10]
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO -      eip = 0x65041873    esp = 0x053ff0d0    ebp = 0x053ff0f4    ebx = 0x650adee0
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO -      esi = 0x053ff380    edi = 0x05902bb0
[task 2022-04-26T08:48:03.144Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO - 47  xul.dll!MessageLoop::RunHandler() [message_loop.cc:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 373 + 0x6]
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO -      eip = 0x65041773    esp = 0x053ff0fc    ebp = 0x053ff128    ebx = 0x650adee0
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO -      esi = 0x053ff380    edi = 0x0596d160
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO - 48  xul.dll!MessageLoop::Run() [message_loop.cc:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 355 + 0x4]
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO -      eip = 0x65041628    esp = 0x053ff130    ebp = 0x053ff148    ebx = 0x650adee0
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO -      esi = 0x059730e0    edi = 0x0596d160
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO - 49  xul.dll!nsBaseAppShell::Run() [nsBaseAppShell.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 137 + 0xb]
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO -      eip = 0x68357525    esp = 0x053ff150    ebp = 0x053ff158    ebx = 0x650adee0
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO -      esi = 0x059730e0    edi = 0x0596d160
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO - 50  xul.dll!nsAppShell::Run() [nsAppShell.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 609 + 0x7]
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO -      eip = 0x68400243    esp = 0x053ff160    ebp = 0x053ff298    ebx = 0x650adee0
[task 2022-04-26T08:48:03.145Z] 08:48:03     INFO -      esi = 0x0596d160    edi = 0x05902bb0
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO - 51  xul.dll!XRE_RunAppShell() [nsEmbedFunctions.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 870 + 0xd]
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO -      eip = 0x6a0ea4e1    esp = 0x053ff2a0    ebp = 0x053ff2bc    ebx = 0x650adee0
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO -      esi = 0x0596d160    edi = 0x05902bb0
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO - 52  xul.dll!mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) [MessagePump.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 235 + 0x4]
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO -      eip = 0x650adf18    esp = 0x053ff2c4    ebp = 0x053ff2d8    ebx = 0x650adee0
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO -      esi = 0x053ff380    edi = 0x05902bb0
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO - 53  xul.dll!MessageLoop::RunInternal() [message_loop.cc:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 380 + 0x10]
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO -      eip = 0x65041873    esp = 0x053ff2e0    ebp = 0x053ff304    ebx = 0x650adee0
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO -      esi = 0x053ff380    edi = 0x05902bb0
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.146Z] 08:48:03     INFO - 54  xul.dll!MessageLoop::RunHandler() [message_loop.cc:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 373 + 0x6]
[task 2022-04-26T08:48:03.147Z] 08:48:03     INFO -      eip = 0x65041773    esp = 0x053ff30c    ebp = 0x053ff338    ebx = 0x0576d801
[task 2022-04-26T08:48:03.147Z] 08:48:03     INFO -      esi = 0x053ff380    edi = 0x059027f0
[task 2022-04-26T08:48:03.147Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.147Z] 08:48:03     INFO - 55  xul.dll!MessageLoop::Run() [message_loop.cc:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 355 + 0x4]
[task 2022-04-26T08:48:03.147Z] 08:48:03     INFO -      eip = 0x65041628    esp = 0x053ff340    ebp = 0x053ff358    ebx = 0x0576d801
[task 2022-04-26T08:48:03.147Z] 08:48:03     INFO -      esi = 0x00d45770    edi = 0x059027f0
[task 2022-04-26T08:48:03.147Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.147Z] 08:48:03     INFO - 56  xul.dll!XRE_InitChildProcess(int, char**, XREChildData const*) [nsEmbedFunctions.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 729 + 0x8]
[task 2022-04-26T08:48:03.147Z] 08:48:03     INFO -      eip = 0x6a0e9999    esp = 0x053ff360    ebp = 0x053ff4e8    ebx = 0x0576d801
[task 2022-04-26T08:48:03.147Z] 08:48:03     INFO -      esi = 0x00d45770    edi = 0x059027f0
[task 2022-04-26T08:48:03.147Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.148Z] 08:48:03     INFO - 57  xul.dll!mozilla::BootstrapImpl::XRE_InitChildProcess(int, char**, XREChildData const*) [Bootstrap.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 67 + 0xd]
[task 2022-04-26T08:48:03.148Z] 08:48:03     INFO -      eip = 0x6a0f0041    esp = 0x053ff4f0    ebp = 0x053ff4fc    ebx = 0x00000016
[task 2022-04-26T08:48:03.148Z] 08:48:03     INFO -      esi = 0x059080d8    edi = 0x6a0f0030
[task 2022-04-26T08:48:03.148Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.148Z] 08:48:03     INFO - 58  firefox.exe!NS_internal_main(int, char**, char**) [nsBrowserApp.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 327 + 0x98]
[task 2022-04-26T08:48:03.148Z] 08:48:03     INFO -      eip = 0x00d21583    esp = 0x053ff504    ebp = 0x053ff66c    ebx = 0x00000016
[task 2022-04-26T08:48:03.148Z] 08:48:03     INFO -      esi = 0x059080d8    edi = 0x6a0f0030
[task 2022-04-26T08:48:03.148Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.148Z] 08:48:03     INFO - 59  firefox.exe!wmain(int, wchar_t**) [nsWindowsWMain.cpp:6396523ea65fbee2dd1fb1ef3c1c20c6114292c5 : 167 + 0x10]
[task 2022-04-26T08:48:03.148Z] 08:48:03     INFO -      eip = 0x00d21304    esp = 0x053ff674    ebp = 0x053ff8dc    ebx = 0x05904580
[task 2022-04-26T08:48:03.148Z] 08:48:03     INFO -      esi = 0x00000017    edi = 0x059045e0
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO - 60  firefox.exe!__scrt_common_main_seh() [exe_common.inl : 288 + 0x1b]
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -      eip = 0x00dad699    esp = 0x053ff8e4    ebp = 0x053ff924    ebx = 0x0509a000
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -      esi = 0x76a812f0    edi = 0x05770fa0
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO - 61  kernel32.dll!BaseThreadInitThunk + 0x18
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -      eip = 0x7618fa29    esp = 0x053ff92c    ebp = 0x053ff934    ebx = 0x0509a000
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -      esi = 0x76a812f0    edi = 0x05770fa0
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO - 62  ntdll.dll!_RtlUserThreadStart + 0x2e
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -      eip = 0x77727a9e    esp = 0x053ff93c    ebp = 0x053ff990    ebx = 0x0509a000
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -      esi = 0x76a812f0    edi = 0x05770fa0
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -     Found by: call frame info
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO - 63  ntdll.dll!_RtlUserThreadStart + 0x1a
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -      eip = 0x77727a6e    esp = 0x053ff998    ebp = 0x053ff9a0    ebx = 0x0509a000
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -      esi = 0x76a812f0    edi = 0x05770fa0
[task 2022-04-26T08:48:03.149Z] 08:48:03     INFO -     Found by: call frame info
Severity: -- → S4
Priority: -- → P1
Assignee: nobody → lissyx+mozillians

During investigation of bug 1769748 and while the browser_utility_multipleAudio.js test is not ran on that platform by default, I came accross a weird behavior and utility process does crash on startup there as well.

Doing a mingw build requires:

Builds IDs picked from a successfull MinGW build on mozilla-central

Summary: Enable ACG on utility + audio for x86 arch → Enable ACG on utility audio decoder for x86 builds (and mingw64 ?)
Assignee: nobody → lissyx+mozillians
Flags: needinfo?(gpascutto)

I suspect this might be the same thing that I'm seeing in bug 1783223

There is a problem in MinGW's current definition for PROCESS_MITIGATION_DYNAMIC_CODE_POLICY:

    typedef struct _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY {
      __C89_NAMELESS union {
        DWORD  Flags;
        __C89_NAMELESS struct {
          DWORD ProhibitDynamicCode  :1;
          DWORD AllowThreadOptOut  :1;
          DWORD AllowRemoteDowngrade  :1;
          DWORD ReservedFlags  :30; // should be 29 to have a total of 32
        };
      };
    } PROCESS_MITIGATION_DYNAMIC_CODE_POLICY, *PPROCESS_MITIGATION_DYNAMIC_CODE_POLICY;

Because of that, ApplyProcessMitigationsToCurrentProcess gets poorly compiled. The following excerpt:

    PROCESS_MITIGATION_DYNAMIC_CODE_POLICY policy = {};
    policy.ProhibitDynamicCode = true;

    if (!set_process_mitigation_policy(ProcessDynamicCodePolicy, &policy,
                                       sizeof(policy)) &&
        ERROR_ACCESS_DENIED != ::GetLastError()) {
      return false;
    }

Yields a policy of value 0xAAAAAAAA00000001 and size 8 with a MinGW build:

mov     rax,0AAAAAAAA00000001h
mov     qword ptr [rbp-60h],rax
lea     rdx,[rbp-60h]
mov     r8d,8
mov     ecx,2
call    r14
test    eax,eax
jne     firefox!sandbox::ApplyProcessMitigationsToCurrentProcess+0x27f (00007ff6`8c80770f)
call    qword ptr [firefox!_imp_GetLastError (00007ff6`8c8f2298)]
cmp     eax,5

Compared to a policy of value 1 and size 4 with a normal build:

mov     dword ptr [rsp+20h],1
lea     rdx,[rsp+20h]
mov     r8d,4
mov     ecx,2
mov     rax,r14
call    qword ptr [firefox!__guard_dispatch_icall_fptr (00007ff6`01b5b010)]
test    eax,eax
jne     firefox!sandbox::ApplyProcessMitigationsToCurrentProcess+0x236 (00007ff6`01b26916)
call    qword ptr [firefox!_imp_GetLastError (00007ff6`01b4f980)]
cmp     eax,5

This makes SetProcessMitigationPolicy fail with the last error set to ERROR_INVALID_PARAMETER in MinGW builds. As a consequence, ApplyProcessMitigationsToCurrentProcess returns false, which makes the process terminate in TargetServicesBase::LowerToken. That should explain why ACG has never worked in MinGW builds with this version of the header.

We should report the mistake to MinGW, have it fixed, and re-enable ACG in our MinGW builds for every process that uses it in normal builds. [:gerard-majax], will you have the time to work on this as the assignee for this bug? This will impact more processes than just the audio decoder, should we make it a different bug?

Then will remain the question about x86 for the specific case of the audio decoder, which I will start to study next week.

Flags: needinfo?(lissyx+mozillians)

Thanks for finding that :)

Flags: needinfo?(lissyx+mozillians)

That's awesome, thanks for diagnosing this so quickly! We can use a local patch until it gets upstreamed; ping me if you want help submitting it and stuff.

Assignee: lissyx+mozillians → yjuglaret

I have tried to propose a patch on the MinGW mailing list. I didn't find any explicit document explaining how to contribute, so I hope that was the proper way to do this.

I will also now write a temporary fix for Firefox as suggested by [:tjr].

The patch was accepted and pushed into MinGW, it should be part of the next MinGW release. Meanwhile the temporary fix for Firefox is almost ready too.

By the way, this problem should also affect the socket process, which should also refuse to start in MinGW builds after failing to set the policy because of the wrong definition. We should make sure there is a test that would catch a failure in starting the socket process since it seems like something we failed to notice.

Pushed by bobowencode@gmail.com: https://hg.mozilla.org/integration/autoland/rev/82520c30a68c Part 1: Use a custom definition for PROCESS_MITIGATION_DYNAMIC_CODE_POLICY in MinGW builds. r=bobowen https://hg.mozilla.org/integration/autoland/rev/a981fd196494 Part 2: Propagate custom definition for PROCESS_MITIGATION_DYNAMIC_CODE_POLICY to third-party. r=bobowen https://hg.mozilla.org/integration/autoland/rev/8089421d8260 Part 3: Add Part 2 to the list of patches to apply when updating third-party. r=bobowen https://hg.mozilla.org/integration/autoland/rev/9e84468d67ec Part 4: Enable Arbitrary Code Guard in MinGW builds. r=bobowen

The x86 problem is explained by bug 1783223 comment 27 and will be fixed by bug 1783223 comment 31, for the moment only on Nightly.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: