Closed Bug 1603974 Opened 4 months ago Closed 1 day ago

dgapi on the blocklist is still loaded and causes crash

Categories

(Firefox :: Launcher Process, defect, P2)

Unspecified
Windows
defect

Tracking

()

RESOLVED FIXED
Firefox 77
Tracking Status
firefox77 --- fixed

People

(Reporter: toshi, Assigned: toshi)

References

(Blocks 1 open bug, Regressed 1 open bug)

Details

Attachments

(8 files)

We have blocked dgapi/dgapi64 older than 7.5.1.0 as Bug 1318858, but it's still loaded and causes crash. In those crash dumps, there is no hook in ntdll!LdrLoadDll or ntdll!NtMapViewOfSection.

Blocks: 1530541

Analyzing the launcher failure ping (https://sql.telemetry.mozilla.org/queries/67099#169970), almost all of launcher failures with dgapi/dgapi64 were caused by the same reason as Bug 1587539, which is not in ESR68 or 71.

EarlgreyTea, would you ask the original reporter to try Beta or Nightly?

Flags: needinfo?(earlgreypicard)

(In reply to Toshihito Kikuchi [:toshi] from comment #1)

EarlgreyTea, would you ask the original reporter to try Beta or Nightly?

sorry.
I immediately called the original reporter on the MozillaZine.jp topic, but I haven't received a response yet.

Flags: needinfo?(earlgreypicard)

The original reporter has reported a crash in Beta.

Firefox 72.0b7:
https://crash-stats.mozilla.org/report/index/83f15c32-6cc5-435e-8b02-ec03d0191218
Firefox 72.0b10:
https://crash-stats.mozilla.org/report/index/1f5c0866-ddb0-435d-89db-9229e0191225

Also, the same situation as Bug 1603335 has occurred at the first startup.

Nightly 73.0a1 is in the same situation as Bug 1603335.

Supplementary information:

  • dgapi64.dll Version: 7.5.0.0107 (checked from PowerShell)
  • dgapi64.dll seems to be loaded in Firefox (checked with tasklist command)

(In reply to EarlgreyTea from comment #3)

The original reporter has reported a crash in Beta.

Firefox 72.0b7:
https://crash-stats.mozilla.org/report/index/83f15c32-6cc5-435e-8b02-ec03d0191218
Firefox 72.0b10:
https://crash-stats.mozilla.org/report/index/1f5c0866-ddb0-435d-89db-9229e0191225

Also, the same situation as Bug 1603335 has occurred at the first startup.

Nightly 73.0a1 is in the same situation as Bug 1603335.

Supplementary information:

  • dgapi64.dll Version: 7.5.0.0107 (checked from PowerShell)
  • dgapi64.dll seems to be loaded in Firefox (checked with tasklist command)

Thank you for sharing these information. I think I got a good understanding on this issue and Bug 1603335.

Here's my theory.

Digital Guardian fixed the crash issue in 7.5.1, and they also changed an injection method between 7.5.0 and 7.5.1. On the other hand, we have two versions of blocklist which interacts with Digital Guardian as below.

New blocklist:

  • can block 7.5.1 safely
  • can block 7.5.0, but it breaks process launch (Bug 1603335)

Old blocklist:

  • cannot block dgapi 7.5.0

Another factor to make the situation more complicated is we enable a different blocklist for a different process type.

Combining these factors together, the reason why dgapi 7.5.0 is still loaded in 72 Beta and crashes the process can be explained like this.

  1. At a first launch, we enable a new blocklist in the browser process which causes the 0xc0000022 popup.
  2. As a result of 1), launcher process is disabled.
  3. Next time Firefox is launched, we use an old blocklist in the browser process and no blocklist in the child process.
  4. All firefox processes start correctly, but crash due to the bug on dgapi side.

The story of Nightly is different.

  1. At a first launch, we use a new blocklist in the browser process which causes the 0xc0000022 popup.
  2. As a result of 1), launcher process is disabled.
  3. Next time Firefox is launched, we use an old blocklist in the browser process and a new blocklist in the child process.
  4. The browser process starts correctly, but the child process fails to start, resulting in the blank page problem (Bug 1603335).

This explains why we don't see any crash reports at GetMBNoDefault from version 73.

The crash at GetMBNoDefault is not firefox's problem, and as you may know, blocking dgapi is not a solution but a mitigation. Now that Digital Guardian fixed the crash in 7.5.1 (and probably in 7.4.2 as well), upgrading from 7.5.0 to 7.5.1 is always an ideal solution.

Because they have a kernel driver while we don't, what we can do is limited. Moreover, we don't know which injection method DG 7.5.0 uses. I was able to reproduce Bug 1603335 with my test kernel driver, so I'll try to find out what we can, but please note that we cannot commit to fix DG's crash.

I prototyped a new way to block dgapi not to cause 0xc0000022. Could you please install this and see it fixes both 0xc0000022 and dgapi's crash?

Please note that this is an experimental fix. This may not resolve the issue, or the approach may not be approved even if this works good, but we'd like to know a verification result to confirm we understand the issue correctly.

x64 installer (submitted job):
https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/SuQkDlzVRhe0jPIHFIxulQ/runs/0/artifacts/public/build/install/sea/target.installer.exe

Flags: needinfo?(earlgreypicard)

Sorry, I found this prototype was imperfect. I'll update when a next version is ready.

Flags: needinfo?(earlgreypicard)
OS: Unspecified → Windows
Priority: P3 → P2
See Also: → 1603335

This patch introduces nt::VirtualQuery which consumes only ntdll's functions
to reduce dependency in MMPolicy on kernel32.dll. With this, MMPolicy still
depends on kernel32.dll, that will be solved by a coming patch.

Assignee: nobody → tkikuchi
Status: NEW → ASSIGNED

This patch moves the instantiation of PEHeaders from CheckBlockInfo to
IsDllAllowed so that IsDllAllowed can use an instance of PEHeaders.

Depends on D68342

WindowsDllDetourPatcher::CreateTrampoline does not only create a trampoline
region but also applies a patch on an original function. This patch extracts
the patching part as separate functions.

Depends on D68343

This patch introduces a new policy MMPolicyInProcessEarlyStage which does
not consume any functions imported from kernel32.dll so that we can use it
in a process's early stage i.e. before IAT is resolved.

Depends on D68344

This patch introduces a new DLL interceptor WindowsDllEntryPointInterceptor
which applies a hook to a target function without backing up the original
function code.

Depends on D68345

This patch introduces Kernel32ExportsSolver which calculates RVAs of
kernel32's functions and transfers them to a target process, where the
transferred RVAs are resolved into function addresses.

Depends on D68346

This patch introduces a new DLL blocklist type NeuterlistEntry which neuters
a DLL, hooking the DLL's entrypoint into a no-op function. With this technique,
we give the injected DLL no chance to run its code though we allow it to be
loaded into the process.

This new blocklist type is intended to block a DLL which is injected by IAT
patching which was planted by a kernel callback routine for LoadImage. It's
because blocking such a DLL makes a new process fail to launch.

Depends on D68347

Please ask Molly to review this.

Flags: needinfo?(tkikuchi)

(In reply to Aaron Klotz [:aklotz] from comment #17)

Please ask Molly to review this.

She agreed to help with this. I'll update the revisions. Thanks!

Flags: needinfo?(tkikuchi)
Attachment #9135942 - Attachment description: Bug 1603974 - Part 7: Introduce a new blocklist type NeuterlistEntry. r=aklotz → Bug 1603974 - Part 7: Introduce a new blocklist type RedirectToNoOpEntryPoint. r=mhowell
Attachment #9135943 - Attachment description: Bug 1603974 - Part 8: Use NeuterlistEntry for dgapi[64].dll. r=aklotz → Bug 1603974 - Part 8: Use RedirectToNoOpEntryPoint for dgapi[64].dll. r=mhowell
Pushed by dvarga@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9467dffe8d04
Part 1: Implement nt::VirtualQuery consuming only ntdll.dll.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/fe96d48d5b14
Part 2: Move PEHeaders from CheckBlockInfo to IsDllAllowed.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/c2601b5bdd3e
Part 3: Extract a patching operation from CreateTrampoline.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/5d4cd3237ec0
Part 4: Introduce MMPolicyInProcessEarlyStage.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/484a45d16149
Part 5: Introduce WindowsDllEntryPointInterceptor.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/631725404fb8
Part 6: Introduce Kernel32ExportsSolver.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/28ef741f8f65
Part 7: Introduce a new blocklist type RedirectToNoOpEntryPoint.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/ee3fb8271709
Part 8: Use RedirectToNoOpEntryPoint for dgapi[64].dll. r=mhowell

Backed out 8 changesets (bug 1603974) for causing build bustage

Push with failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=296622204&resultStatus=testfailed%2Cbusted%2Cexception&classifiedState=unclassified&revision=ee3fb8271709136fe515187a8bc74c4c0ee60db3

Failure log: https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=296622204&resultStatus=testfailed%2Cbusted%2Cexception&classifiedState=unclassified&revision=ee3fb8271709136fe515187a8bc74c4c0ee60db3

Backout link: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&classifiedState=unclassified&revision=4faa43f09899bfe79a3a4fa78864497f158dbf36

[task 2020-04-07T15:19:41.402Z] 15:19:41     INFO -  1 error generated.
[task 2020-04-07T15:19:41.402Z] 15:19:41     INFO -  /builds/worker/checkouts/gecko/config/rules.mk:750: recipe for target 'WindowsDllBlocklist.obj' failed
[task 2020-04-07T15:19:41.402Z] 15:19:41    ERROR -  make[4]: *** [WindowsDllBlocklist.obj] Error 1
[task 2020-04-07T15:19:41.402Z] 15:19:41     INFO -  make[4]: Leaving directory '/builds/worker/workspace/obj-build/mozglue/dllservices'
[task 2020-04-07T15:19:41.402Z] 15:19:41     INFO -  make[4]: *** Waiting for unfinished jobs....
[task 2020-04-07T15:19:41.406Z] 15:19:41     INFO -  make[4]: Entering directory '/builds/worker/workspace/obj-build/mozglue/misc'
[task 2020-04-07T15:19:41.406Z] 15:19:41     INFO -  mozglue/misc/WindowsUnicode.obj
[task 2020-04-07T15:19:41.406Z] 15:19:41     INFO -  make[4]: Leaving directory '/builds/worker/workspace/obj-build/mozglue/misc'
[task 2020-04-07T15:19:41.415Z] 15:19:41     INFO -  make[4]: Entering directory '/builds/worker/workspace/obj-build/js/src'
[task 2020-04-07T15:19:41.416Z] 15:19:41     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang-cl -Xclang -std=c++17 --target=aarch64-windows-msvc -FoUnified_cpp_js_src23.obj -c  -guard:cf -DNDEBUG=1 -DTRIMMED=1 -DWASM_SUPPORTS_HUGE_MEMORY -DJS_CACHEIR_SPEW -DJS_STRUCTURED_SPEW -DJS_HAS_CTYPES -DFFI_BUILDING -DEXPORT_JS_API -DMOZ_HAS_MOZGLUE -I/builds/worker/checkouts/gecko/js/src -I/builds/worker/workspace/obj-build/js/src -I/builds/worker/workspace/obj-build/js/src/ctypes/libffi/include -I/builds/worker/checkouts/gecko/js/src/ctypes/libffi/src/aarch64 -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -MD -FI /builds/worker/workspace/obj-build/js/src/js-confdefs.h -DMOZILLA_CLIENT -Qunused-arguments -Qunused-arguments -fcrash-diagnostics-dir=/builds/worker/artifacts -TP -D_CRT_SECURE_NO_WARNINGS -Zc:sizedDealloc- -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -Gw -Wno-inline-new-delete -Wno-invalid-offsetof -Wno-microsoft-enum-value -Wno-microsoft-include -Wno-unknown-pragmas -Wno-ignored-pragmas -Wno-deprecated-declarations -Wno-invalid-noreturn -Wno-inconsistent-missing-override -Wno-implicit-exception-spec-mismatch -Wno-microsoft-exception-spec -Wno-unused-local-typedef -Wno-ignored-attributes -Wno-used-but-marked-unused -GR- -Z7 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -Oy- -Werror  -Xclang -MP -Xclang -dependency-file -Xclang .deps/Unified_cpp_js_src23.obj.pp -Xclang -MT -Xclang Unified_cpp_js_src23.obj   Unified_cpp_js_src23.cpp
[task 2020-04-07T15:19:41.416Z] 15:19:41     INFO -  In file included from Unified_cpp_js_src23.cpp:29:
[task 2020-04-07T15:19:41.416Z] 15:19:41     INFO -  /builds/worker/checkouts/gecko/js/src/vm/Printer.cpp(403,11): warning: Usage of ASCII file functions (here fopen) is forbidden on Windows.
[task 2020-04-07T15:19:41.416Z] 15:19:41     INFO -    file_ = fopen(path, "w");
[task 2020-04-07T15:19:41.416Z] 15:19:41     INFO -            ^
[task 2020-04-07T15:19:41.416Z] 15:19:41     INFO -  /builds/worker/checkouts/gecko/js/src/vm/Printer.cpp(403,11): note: On Windows executed functions: fopen, fopen_s, open, _open, _sopen, _sopen_s, OpenFile, CreateFileA should never be used due to lossy conversion from UTF8 to ANSI.
[task 2020-04-07T15:19:41.416Z] 15:19:41     INFO -  1 warning generated.
[task 2020-04-07T15:19:41.416Z] 15:19:41     INFO -  make[4]: Leaving directory '/builds/worker/workspace/obj-build/js/src'
[task 2020-04-07T15:19:41.416Z] 15:19:41     INFO -  make[4]: Entering directory '/builds/worker/workspace/obj-build/js/src'
[task 2020-04-07T15:19:41.417Z] 15:19:41     INFO -  js/src/Unified_cpp_js_src28.obj
[task 2020-04-07T15:19:41.417Z] 15:19:41     INFO -  make[4]: Leaving directory '/builds/worker/workspace/obj-build/js/src'
[task 2020-04-07T15:19:41.644Z] 15:19:41     INFO -  make[4]: Entering directory '/builds/worker/workspace/obj-build/mozglue/dllservices'
[task 2020-04-07T15:19:41.644Z] 15:19:41     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang-cl -Xclang -std=c++17 --target=aarch64-windows-msvc -FoUnified_cpp_mozglue_dllservices0.obj -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -guard:cf -DNDEBUG=1 -DTRIMMED=1 -DIMPL_MFBT -DMOZ_HAS_MOZGLUE -I/builds/worker/checkouts/gecko/mozglue/dllservices -I/builds/worker/workspace/obj-build/mozglue/dllservices -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -MD -FI /builds/worker/workspace/obj-build/mozilla-config.h -DMOZILLA_CLIENT -Qunused-arguments -Qunused-arguments -fcrash-diagnostics-dir=/builds/worker/artifacts -TP -Zc:sizedDealloc- -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -Gw -Wno-inline-new-delete -Wno-invalid-offsetof -Wno-microsoft-enum-value -Wno-microsoft-include -Wno-unknown-pragmas -Wno-ignored-pragmas -Wno-deprecated-declarations -Wno-invalid-noreturn -Wno-inconsistent-missing-override -Wno-implicit-exception-spec-mismatch -Wno-microsoft-exception-spec -Wno-unused-local-typedef -Wno-ignored-attributes -Wno-used-but-marked-unused -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -GR- -Z7 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -Oy- -Werror  -Xclang -MP -Xclang -dependency-file -Xclang .deps/Unified_cpp_mozglue_dllservices0.obj.pp -Xclang -MT -Xclang Unified_cpp_mozglue_dllservices0.obj   Unified_cpp_mozglue_dllservices0.cpp
[task 2020-04-07T15:19:41.645Z] 15:19:41     INFO -  make[4]: Leaving directory '/builds/worker/workspace/obj-build/mozglue/dllservices'
[task 2020-04-07T15:19:41.645Z] 15:19:41     INFO -  /builds/worker/checkouts/gecko/config/recurse.mk:74: recipe for target 'mozglue/dllservices/target-objects' failed
[task 2020-04-07T15:19:41.645Z] 15:19:41    ERROR -  make[3]: *** [mozglue/dllservices/target-objects] Error 2
[task 2020-04-07T15:19:41.646Z] 15:19:41     INFO -  make[3]: *** Waiting for unfinished jobs....
[task 2020-04-07T15:19:41.670Z] 15:19:41     INFO -  make[4]: Entering directory '/builds/worker/workspace/obj-build/js/src'
[task 2020-04-07T15:19:41.671Z] 15:19:41     INFO -  js/src/Unified_cpp_js_src3.obj
[task 2020-04-07T15:19:41.672Z] 15:19:41     INFO -  make[4]: Leaving directory '/builds/worker/workspace/obj-build/js/src'
[task 2020-04-07T15:19:41.672Z] 15:19:41     INFO -  make[4]: Entering directory '/builds/worker/workspace/obj-build/mfbt/tests'
[task 2020-04-07T15:19:41.672Z] 15:19:41     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang-cl -Xclang -std=c++17 --target=aarch64-windows-msvc -FoTestWrappingOperations.obj -c  -guard:cf -DNDEBUG=1 -DTRIMMED=1 -DIMPL_MFBT -I/builds/worker/checkouts/gecko/mfbt/tests -I/builds/worker/workspace/obj-build/mfbt/tests -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/testing -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -MD -FI /builds/worker/workspace/obj-build/mozilla-config.h -DMOZILLA_CLIENT -Qunused-arguments -Qunused-arguments -fcrash-diagnostics-dir=/builds/worker/artifacts -TP -Zc:sizedDealloc- -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -Gw -Wno-inline-new-delete -Wno-invalid-offsetof -Wno-microsoft-enum-value -Wno-microsoft-include -Wno-unknown-pragmas -Wno-ignored-pragmas -Wno-deprecated-declarations -Wno-invalid-noreturn -Wno-inconsistent-missing-override -Wno-implicit-exception-spec-mismatch -Wno-microsoft-exception-spec -Wno-unused-local-typedef -Wno-ignored-attributes -Wno-used-but-marked-unused -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -GR- -Z7 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -Oy- -Werror -wd4275 -wd4530  -Xclang -MP -Xclang -dependency-file -Xclang .deps/TestWrappingOperations.obj.pp -Xclang -MT -Xclang TestWrappingOperations.obj  -FdTestWrappingOperations.pdb  /builds/worker/checkouts/gecko/mfbt/tests/TestWrappingOperations.cpp
[task 2020-04-07T15:19:41.672Z] 15:19:41     INFO -  make[4]: Leaving directory '/builds/worker/workspace/obj-build/mfbt/tests'
[task 2020-04-07T15:19:41.680Z] 15:19:41     INFO -  make[4]: Entering directory '/builds/worker/workspace/obj-build/mfbt/tests'
[task 2020-04-07T15:19:41.680Z] 15:19:41     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang-cl -Xclang -std=c++17 --target=aarch64-windows-msvc -FoTestWeakPtr.obj -c  -guard:cf -DNDEBUG=1 -DTRIMMED=1 -DIMPL_MFBT -I/builds/worker/checkouts/gecko/mfbt/tests -I/builds/worker/workspace/obj-build/mfbt/tests -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/testing -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -MD -FI /builds/worker/workspace/obj-build/mozilla-config.h -DMOZILLA_CLIENT -Qunused-arguments -Qunused-arguments -fcrash-diagnostics-dir=/builds/worker/artifacts -TP -Zc:sizedDealloc- -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -Gw -Wno-inline-new-delete -Wno-invalid-offsetof -Wno-microsoft-enum-value -Wno-microsoft-include -Wno-unknown-pragmas -Wno-ignored-pragmas -Wno-deprecated-declarations -Wno-invalid-noreturn -Wno-inconsistent-missing-override -Wno-implicit-exception-spec-mismatch -Wno-microsoft-exception-spec -Wno-unused-local-typedef -Wno-ignored-attributes -Wno-used-but-marked-unused -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -GR- -Z7 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -Oy- -Werror -wd4275 -wd4530  -Xclang -MP -Xclang -dependency-file -Xclang .deps/TestWeakPtr.obj.pp -Xclang -MT -Xclang TestWeakPtr.obj  -FdTestWeakPtr.pdb  /builds/worker/checkouts/gecko/mfbt/tests/TestWeakPtr.cpp
[task 2020-04-07T15:19:41.680Z] 15:19:41     INFO -  make[4]: Leaving directory '/builds/worker/workspace/obj-build/mfbt/tests'
[task 2020-04-07T15:19:41.680Z] 15:19:41     INFO -  make[4]: Entering directory '/builds/worker/workspace/obj-build/js/src'
Flags: needinfo?(tkikuchi)
Attachment #9135937 - Attachment description: Bug 1603974 - Part 3: Extract a patching operation from CreateTrampoline. r=aklotz → Bug 1603974 - Part 3: Extract a patching operation from CreateTrampoline. r=mhowell

Updated the "Part 3" patch to address Win AArch64 build bustage.

Flags: needinfo?(tkikuchi)
Pushed by ncsoregi@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b609f60a8bd4
Part 1: Implement nt::VirtualQuery consuming only ntdll.dll.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/4fef3c3838ea
Part 2: Move PEHeaders from CheckBlockInfo to IsDllAllowed.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/bc3b3c2db7f5
Part 3: Extract a patching operation from CreateTrampoline.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/eafbf6ca23d6
Part 4: Introduce MMPolicyInProcessEarlyStage.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/94b98b6632c6
Part 5: Introduce WindowsDllEntryPointInterceptor.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/9d1ff38ff959
Part 6: Introduce Kernel32ExportsSolver.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/fac73bafaf21
Part 7: Introduce a new blocklist type RedirectToNoOpEntryPoint.  r=mhowell
https://hg.mozilla.org/integration/autoland/rev/daecd7ae1e24
Part 8: Use RedirectToNoOpEntryPoint for dgapi[64].dll. r=mhowell
You need to log in before you can comment on or make changes to this bug.