searching for reviewer(handyman)
38a326f813f6b1fd1400d215730e0105f62eb9c5: Bug 1548406 - Part 2 - Conditionally include WindowServer access in the GMP sandbox r=handyman
Haik Aftandilian <haftandilian@mozilla.com> - Thu, 02 May 2019 07:04:58 +0000 - rev 531047
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +0000
Bug 1548406 - Part 2 - Conditionally include WindowServer access in the GMP sandbox r=handyman Conditionally include WindowServer access in the GMP sandbox so that it is only allowed for the Widevine CDM plugin, and not OpenH264. Differential Revision: https://phabricator.services.mozilla.com/D29586
d977a4ad06166453823ed73b0ec7b77dd20399bf: Bug 1548406 - Part 1 - Simplify MacSandboxInfo and sandbox type enums r=handyman
Haik Aftandilian <haftandilian@mozilla.com> - Thu, 02 May 2019 07:04:44 +0000 - rev 531046
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +0000
Bug 1548406 - Part 1 - Simplify MacSandboxInfo and sandbox type enums r=handyman Replace the MacSandboxType_Plugin sandbox type with MacSandboxType_Flash and MacSandboxType_GMP so that there is a 1:1 association between MacSandboxType values and sandbox policies. Remove the MacSandboxPluginType enum. Instead of having different MacSandboxPluginTypes, we will just have MacSandboxType_GMP. We only use GMP for two plugin types, Widevine and OpenH264, and they only differ in that Widevine requires accss to the WindowServer. Remove the MacSandboxPluginInfo struct and move the two needed fields pluginPath and pluginBinaryPath to MacSandboxInfo. Differential Revision: https://phabricator.services.mozilla.com/D29585
c74d96f38aeb52d0c5af9d3f61ca2217b48f3294: Bug 1451127 : Added files to UNIFIED_SOURCES and removed conflicts. r=handyman
srujana <srujana.peddinti@students.iiit.ac.in> - Wed, 20 Mar 2019 21:32:50 +0000 - rev 524612
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +0000
Bug 1451127 : Added files to UNIFIED_SOURCES and removed conflicts. r=handyman Added files to UNIFIED_SOURCES and removed conflicts. Files that required flags still remain in SOURCES. SOURCES use "StrictOrderingOnAppendListWithFlagsFactory" base class and UNIFIED_SOURCES use "StrictOrderingOnAppendList" base class. As of now I do not think there is an option to add flags for the later. So the files requiring flags are kept in SOURCES. Differential Revision: https://phabricator.services.mozilla.com/D23795
2ab551124db77beaa7e227d1f3bb13d52fa97703: Bug 1474759 - added strings to the empty MOZ_Crash() in Linux sandboxing module. r=handyman
brendaadel <brendaadel96@gmail.com> - Fri, 22 Mar 2019 07:43:29 +0000 - rev 524516
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +0000
Bug 1474759 - added strings to the empty MOZ_Crash() in Linux sandboxing module. r=handyman Added reason strings to all MOZ_CRASH in linux/sandbox Differential Revision: https://phabricator.services.mozilla.com/D24143
28c61342bdad7edf20d2ca099112673cca4e8360: Bug 1526016: Get TestDllInterceptor building on aarch64 builds; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Thu, 21 Feb 2019 18:42:42 +0000 - rev 518188
Push 10862 by ffxbld-merge at Mon, 11 Mar 2019 13:01:11 +0000
Bug 1526016: Get TestDllInterceptor building on aarch64 builds; r=handyman Differential Revision: https://phabricator.services.mozilla.com/D19447
fae2ad1c3dc6823fd9684d7f46968446adac66fa: Bug 1526383: Add essential arm64 support to nsWindowsDllInterceptor; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Thu, 21 Feb 2019 18:41:17 +0000 - rev 518187
Push 10862 by ffxbld-merge at Mon, 11 Mar 2019 13:01:11 +0000
Bug 1526383: Add essential arm64 support to nsWindowsDllInterceptor; r=handyman This patch doesn't cover all possible functions for which we currently instantiate interceptors inside Firefox/Gecko. Rather than asserting, we just fail in those cases (at least until we have full coverage of existing uses). This is okay, as for the upcoming milestone 2 of aarch64 builds, we are most concerned with successfully being able to hook the following functions: ntdll!LdrLoadDll ntdll!LdrUnloadDll ntdll!LdrResolveDelayLoadedAPI user32!GetWindowInfo So, within that context, the aarch64 implementation is fairly simple: Each instruction is 4-bytes wide. We iterate down each instruction, and if the current instruction is *not* PC-relative, we just copy it verbatim. If we encounter an instruction that *is* PC-relative, we either decode it and rewrite it inside the trampoline, or we fail. For the purposes of milestone 2, the only instruction that is essential to decode is ADRP. In bug 1526016 I modify TestDllInterceptor to exclude functions that are not yet supported by this patch. Differential Revision: https://phabricator.services.mozilla.com/D19446
e741f3208ec83a53f26747af1acacb4d1263cab3: Bug 1512731: Add sandbox read rule for user's AppData\Local Fonts dir. r=handyman
Bob Owen <bobowencode@gmail.com> - Tue, 29 Jan 2019 08:49:13 +0000 - rev 513820
Push 10862 by ffxbld-merge at Mon, 11 Mar 2019 13:01:11 +0000
Bug 1512731: Add sandbox read rule for user's AppData\Local Fonts dir. r=handyman
4e7796daf83876341131ecde49e8d38d4989d4c0: Bug 1512731 - Add sandbox read rule for user's AppData\Local Fonts dir. r=handyman, a=RyanVM
Bob Owen <bobowencode@gmail.com> - Tue, 29 Jan 2019 08:49:13 +0000 - rev 512929
Push 10644 by ryanvm@gmail.com at Thu, 07 Feb 2019 15:29:46 +0000
Bug 1512731 - Add sandbox read rule for user's AppData\Local Fonts dir. r=handyman, a=RyanVM
7cbd48e23581ff2b52ffa9b02a9c49bc0427f78b: Bug 1515375 - Null check sLaunchErrors in SandboxBroker and always accumulate if not created. r=handyman
Bob Owen <bobowencode@gmail.com> - Thu, 20 Dec 2018 17:42:04 +0000 - rev 508720
Push 10547 by ffxbld-merge at Mon, 21 Jan 2019 13:03:58 +0000
Bug 1515375 - Null check sLaunchErrors in SandboxBroker and always accumulate if not created. r=handyman
4c0f7afe671282b23fe272779115746736e823d6: Bug 1481518 part 1: Add aarch64 Windows support to the chromium sandbox code. r=handyman
Bob Owen <bobowencode@gmail.com> - Fri, 14 Dec 2018 13:07:35 +0000 - rev 507709
Push 10547 by ffxbld-merge at Mon, 21 Jan 2019 13:03:58 +0000
Bug 1481518 part 1: Add aarch64 Windows support to the chromium sandbox code. r=handyman This patch includes the changes that Microsoft landed for the sandbox along with other changes to the supporting base files that they depend upon.
93e2cfcc400df3879cc767a9c82453359ff6b35f: Bug 1515375 - Null check sLaunchErrors in SandboxBroker and always accumulate if not created. r=handyman, a=RyanVM
Bob Owen <bobowencode@gmail.com> - Thu, 20 Dec 2018 17:42:04 +0000 - rev 506360
Push 10382 by ryanvm@gmail.com at Fri, 21 Dec 2018 19:48:15 +0000
Bug 1515375 - Null check sLaunchErrors in SandboxBroker and always accumulate if not created. r=handyman, a=RyanVM
a31b6b37d11c256b60b539495be002114baff3c7: Bug 1495512: Part 2 - Add test for 10-byte DLL interception; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Fri, 23 Nov 2018 05:57:01 +0000 - rev 504221
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1495512: Part 2 - Add test for 10-byte DLL interception; r=handyman Added a test to TestCrossProcessInterceptor that forcibly uses a 10-byte patch on NtMapViewOfSection (which is a realistic case) and then ensures that disabling the hook also works. Differential Revision: https://phabricator.services.mozilla.com/D10286
09573684485b7b49ba001af79be6b1fa5bec2848: Bug 1495512: Part 1 - DLL Interceptor - Add capability to do 10-byte detour patches against ntdll; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Fri, 23 Nov 2018 05:56:42 +0000 - rev 504220
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1495512: Part 1 - DLL Interceptor - Add capability to do 10-byte detour patches against ntdll; r=handyman This patch adds support on x64 for 10-byte detour patches in certain cases. In particular, the reserved region of trampoline memory must be allocated within the bottommost 2GB of the address space. This feature is currently only activated when detouring functions exported by ntdll.dll. Differential Revision: https://phabricator.services.mozilla.com/D10285
0cd30c3d9b303429f3fe2b72a5b1312ab4f53a23: Bug 1495512: Part 2 - Add test for 10-byte DLL interception; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Tue, 13 Nov 2018 19:51:21 +0000 - rev 502527
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1495512: Part 2 - Add test for 10-byte DLL interception; r=handyman Added a test to TestCrossProcessInterceptor that forcibly uses a 10-byte patch on NtMapViewOfSection (which is a realistic case) and then ensures that disabling the hook also works. Differential Revision: https://phabricator.services.mozilla.com/D10286
7ae82cae37d981ea7285e960cb3d71ef2bcb9f64: Bug 1495512: Part 1 - DLL Interceptor - Add capability to do 10-byte detour patches against ntdll; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Tue, 13 Nov 2018 19:48:58 +0000 - rev 502526
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1495512: Part 1 - DLL Interceptor - Add capability to do 10-byte detour patches against ntdll; r=handyman This patch adds support on x64 for 10-byte detour patches in certain cases. In particular, the reserved region of trampoline memory must be allocated within the bottommost 2GB of the address space. This feature is currently only activated when detouring functions exported by ntdll.dll. Differential Revision: https://phabricator.services.mozilla.com/D10285
78154ca1e2ac4b5f07276ab9969883d517940d9d: Bug 1495512: Part 2 - Add test for 10-byte DLL interception; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Sat, 10 Nov 2018 00:50:23 +0000 - rev 501938
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1495512: Part 2 - Add test for 10-byte DLL interception; r=handyman Added a test to TestCrossProcessInterceptor that forcibly uses a 10-byte patch on NtMapViewOfSection (which is a realistic case) and then ensures that disabling the hook also works. Differential Revision: https://phabricator.services.mozilla.com/D10286
17212e7dfe2971e3da25648df48565324e2589e8: Bug 1495512: Part 1 - DLL Interceptor - Add capability to do 10-byte detour patches against ntdll; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Sat, 10 Nov 2018 00:49:57 +0000 - rev 501937
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1495512: Part 1 - DLL Interceptor - Add capability to do 10-byte detour patches against ntdll; r=handyman This patch adds support on x64 for 10-byte detour patches in certain cases. In particular, the reserved region of trampoline memory must be allocated within the bottommost 2GB of the address space. This feature is currently only activated when detouring functions exported by ntdll.dll. Differential Revision: https://phabricator.services.mozilla.com/D10285
06dea9e0cd50794679bbefb51776c8e621e64a98: Bug 1504245 - fix up browser_private_clicktoplay.js in light of focus/timing changes due to lack of about:blank in new windows, r=handyman
David Parks <dparks@mozilla.com> - Mon, 05 Nov 2018 22:30:59 +0000 - rev 500927
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1504245 - fix up browser_private_clicktoplay.js in light of focus/timing changes due to lack of about:blank in new windows, r=handyman Differential Revision: https://phabricator.services.mozilla.com/D10896
65c79ddf98f0fd8c9bf88244fce40e2b1c7b2c4b: Bug 1498625 - Part 2: Switch VR process to TYPE_MOZILLA_CHILD message loop type. r=froydnj,handyman
Daosheng Mu <daoshengmu@gmail.com> - Mon, 05 Nov 2018 21:28:38 +0000 - rev 500920
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1498625 - Part 2: Switch VR process to TYPE_MOZILLA_CHILD message loop type. r=froydnj,handyman Differential Revision: https://phabricator.services.mozilla.com/D10643
c939a33dc358369d5d08a3b15bf94f71f862e3f6: Bug 1501491 - Fix the Firefox build flag: --disable-content-sandbox r=bobowen,handyman
Kirk Steuber <ksteuber@mozilla.com> - Tue, 30 Oct 2018 11:44:22 +0000 - rev 499958
Push 10290 by ffxbld-merge at Mon, 03 Dec 2018 16:23:23 +0000
Bug 1501491 - Fix the Firefox build flag: --disable-content-sandbox r=bobowen,handyman Differential Revision: https://phabricator.services.mozilla.com/D9811
5441249fe31416707df434bc6f886d923543de46: Bug 1496364 - Minor refactor to stop uninitialized variable warning r=handyman
Chris Martin <cmartin@mozilla.com> - Thu, 18 Oct 2018 19:14:05 +0000 - rev 497742
Push 10002 by archaeopteryx@coole-files.de at Fri, 19 Oct 2018 23:09:29 +0000
Bug 1496364 - Minor refactor to stop uninitialized variable warning r=handyman The compiler warns that jobLevel is uninitialized if none of the if-else conditions are true. Simply replacing the leading assert with a "else crash" tells the compiler that case will never actually happen. Differential Revision: https://phabricator.services.mozilla.com/D8841
e8e4080d11009e7e05871301f252a593e913e497: Bug 1496758 - Fix few compilation warnings in ipc code. r=handyman,Jamie
Jean-Yves Avenard <jyavenard@mozilla.com> - Wed, 10 Oct 2018 04:31:35 +0000 - rev 496154
Push 9984 by ffxbld-merge at Mon, 15 Oct 2018 21:07:35 +0000
Bug 1496758 - Fix few compilation warnings in ipc code. r=handyman,Jamie Differential Revision: https://phabricator.services.mozilla.com/D7918
4a9ffef86968f14e52b80f953fa71e730002e186: Bug 1478036: Ensure that inproc nop-space patches use atomic writes; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Thu, 26 Jul 2018 15:34:48 -0600 - rev 484608
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1478036: Ensure that inproc nop-space patches use atomic writes; r=handyman
a42278d971435d702b2850b5da5139dc2a4dd2ad: Bug 1467798: Fix problems with inlining and paths in TestDllInterceptorCrossProcess; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 04 Jul 2018 14:12:36 -0600 - rev 482932
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1467798: Fix problems with inlining and paths in TestDllInterceptorCrossProcess; r=handyman
2ac106b8f990e17d4a300caa855b0e970d3e57e9: Bug 1473371: Create a separate function hook type for use with cross-process DLL interceptors; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 04 Jul 2018 14:14:18 -0600 - rev 480526
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1473371: Create a separate function hook type for use with cross-process DLL interceptors; r=handyman
f86b10b1352189feaff4f10fb41ac2c181369211: Bug 1473371: Create a separate function hook type for use with cross-process DLL interceptors; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 04 Jul 2018 14:14:18 -0600 - rev 480497
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1473371: Create a separate function hook type for use with cross-process DLL interceptors; r=handyman
88494d07fbcd14ced0c83f00c12b4bae5d566b48: Bug 1460022: Part 7 - Update plugin code to work with revised DLL interceptor interface; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:50:50 -0600 - rev 480067
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 7 - Update plugin code to work with revised DLL interceptor interface; r=handyman
7bdadc37becdd1c800543396b19a3d8f2c114e08: Bug 1460022: Part 3 - Update TestDllInterceptorCrossProcess to reflect new interceptor interface; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:48:45 -0600 - rev 480063
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 3 - Update TestDllInterceptorCrossProcess to reflect new interceptor interface; r=handyman
d1e8418da3b446ecfe81495ac484abace554b5cf: Bug 1460022: Part 2 - Update TestDllInterceptor to use new DLL interceptor interface; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:48:28 -0600 - rev 480062
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 2 - Update TestDllInterceptor to use new DLL interceptor interface; r=handyman In addition to updating the interface, this patch also significantly alters the structure of this test. In particular, it removes the Test* functions in favour of using template magic. I did this because I noticed that, in the majority of cases, the stub function was being called with all zero arguments, and then we check for the expected error code. I thought that maybe we could replace that repetition with some templates that instantiate a blank tuple that may then be applied to a callable object. See the (MAYBE_)TEST_HOOK* and TEST_DETOUR* macro definitions for detailed information about how to use these things. The test successfully completes with both 32-bit and 64-bit builds.
3e491d518d61ac4980e2b9c422608356256fa180: Bug 1460022: Part 1 - Modify DLL interceptor to use one-time initialization when setting hooks; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:48:05 -0600 - rev 480061
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 1 - Modify DLL interceptor to use one-time initialization when setting hooks; r=handyman This patch makes the interceptor's AddHook functions private, and converts the stubs from simple function pointers into objects containing both the stub function pointer, plus a INIT_ONCE sentinel. Setting a hook now requires calling Set or SetDetour on the stub, which ensures that the hook attempt happens once and only once. The constructor for the new object is constexpr, so it should not generate static initializers if it is declared statically. Note that, as a corollary of the new behaviour, we no longer need to set guards around any hook setting code. I have removed those when present.
5f3dfde41e384ad6374a22cdd5d4964bd0602491: Bug 1460022: Part 7 - Update plugin code to work with revised DLL interceptor interface; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:50:50 -0600 - rev 480049
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 7 - Update plugin code to work with revised DLL interceptor interface; r=handyman
00b20c0a763741ef161ecc48794d28b1db97cbe9: Bug 1460022: Part 3 - Update TestDllInterceptorCrossProcess to reflect new interceptor interface; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:48:45 -0600 - rev 480045
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 3 - Update TestDllInterceptorCrossProcess to reflect new interceptor interface; r=handyman
b8e8aea4a01f596dc543216fa946ac0170b4d616: Bug 1460022: Part 2 - Update TestDllInterceptor to use new DLL interceptor interface; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:48:28 -0600 - rev 480044
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 2 - Update TestDllInterceptor to use new DLL interceptor interface; r=handyman In addition to updating the interface, this patch also significantly alters the structure of this test. In particular, it removes the Test* functions in favour of using template magic. I did this because I noticed that, in the majority of cases, the stub function was being called with all zero arguments, and then we check for the expected error code. I thought that maybe we could replace that repetition with some templates that instantiate a blank tuple that may then be applied to a callable object. See the (MAYBE_)TEST_HOOK* and TEST_DETOUR* macro definitions for detailed information about how to use these things. The test successfully completes with both 32-bit and 64-bit builds.
15822d9848d8647ef9a143f4b718d8d5d66a4c0a: Bug 1460022: Part 1 - Modify DLL interceptor to use one-time initialization when setting hooks; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:48:05 -0600 - rev 480043
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 1 - Modify DLL interceptor to use one-time initialization when setting hooks; r=handyman This patch makes the interceptor's AddHook functions private, and converts the stubs from simple function pointers into objects containing both the stub function pointer, plus a INIT_ONCE sentinel. Setting a hook now requires calling Set or SetDetour on the stub, which ensures that the hook attempt happens once and only once. The constructor for the new object is constexpr, so it should not generate static initializers if it is declared statically. Note that, as a corollary of the new behaviour, we no longer need to set guards around any hook setting code. I have removed those when present.
18f8f85c03076707495a7e55929eba3bd3164214: Bug 1460022: Part 7 - Update plugin code to work with revised DLL interceptor interface; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:50:50 -0600 - rev 480035
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 7 - Update plugin code to work with revised DLL interceptor interface; r=handyman
8bb5142d3f530f898f48105ef08e2d9eadd48577: Bug 1460022: Part 3 - Update TestDllInterceptorCrossProcess to reflect new interceptor interface; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:48:45 -0600 - rev 480031
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 3 - Update TestDllInterceptorCrossProcess to reflect new interceptor interface; r=handyman
0ddf581bdaac15f280673e3937c283cd65cc70a7: Bug 1460022: Part 2 - Update TestDllInterceptor to use new DLL interceptor interface; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:48:28 -0600 - rev 480030
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 2 - Update TestDllInterceptor to use new DLL interceptor interface; r=handyman In addition to updating the interface, this patch also significantly alters the structure of this test. In particular, it removes the Test* functions in favour of using template magic. I did this because I noticed that, in the majority of cases, the stub function was being called with all zero arguments, and then we check for the expected error code. I thought that maybe we could replace that repetition with some templates that instantiate a blank tuple that may then be applied to a callable object. See the (MAYBE_)TEST_HOOK* and TEST_DETOUR* macro definitions for detailed information about how to use these things. The test successfully completes with both 32-bit and 64-bit builds.
1cd5f9b4a6af952a3831281c27abe0b5aaa466c8: Bug 1460022: Part 1 - Modify DLL interceptor to use one-time initialization when setting hooks; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 27 Jun 2018 11:48:05 -0600 - rev 480029
Push 9719 by ffxbld-merge at Fri, 24 Aug 2018 17:49:46 +0000
Bug 1460022: Part 1 - Modify DLL interceptor to use one-time initialization when setting hooks; r=handyman This patch makes the interceptor's AddHook functions private, and converts the stubs from simple function pointers into objects containing both the stub function pointer, plus a INIT_ONCE sentinel. Setting a hook now requires calling Set or SetDetour on the stub, which ensures that the hook attempt happens once and only once. The constructor for the new object is constexpr, so it should not generate static initializers if it is declared statically. Note that, as a corollary of the new behaviour, we no longer need to set guards around any hook setting code. I have removed those when present.
aaab66845dc5ffb0e9e66833afbd7834112ade2c: Bug 1478036: Ensure that inproc nop-space patches use atomic writes; r=handyman a=lizzard
Aaron Klotz <aklotz@mozilla.com> - Thu, 26 Jul 2018 15:34:48 -0600 - rev 478263
Push 9596 by dluca@mozilla.com at Mon, 06 Aug 2018 08:24:12 +0000
Bug 1478036: Ensure that inproc nop-space patches use atomic writes; r=handyman a=lizzard
3518510139bbb70636739b271fb6fe602e5c644b: Bug 1463596: Ensure that WritableTargetFunction correctly handles changing of protection attributes across regions that straddle page boundaries and have different initial protection attributes; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 23 May 2018 16:50:49 -0600 - rev 475175
Push 9374 by jlund@mozilla.com at Mon, 18 Jun 2018 21:43:20 +0000
Bug 1463596: Ensure that WritableTargetFunction correctly handles changing of protection attributes across regions that straddle page boundaries and have different initial protection attributes; r=handyman
993f78b4700d242461c4e78c252b7a00d14bfd9f: Bug 1463961: DLL Interceptor - Make shared VM policy only work for in-proc interceptors and remove pid mapping; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Mon, 28 May 2018 16:54:58 -0600 - rev 475030
Push 9374 by jlund@mozilla.com at Mon, 18 Jun 2018 21:43:20 +0000
Bug 1463961: DLL Interceptor - Make shared VM policy only work for in-proc interceptors and remove pid mapping; r=handyman
3b78d37d61ae46ae3fc35305b27655b80fa06155: Bug 1460997: Out-of-process interceptors should use r/w instead of r/w/x when changing protection attributes prior to writing a trampoline; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Fri, 11 May 2018 15:41:19 -0600 - rev 472664
Push 9374 by jlund@mozilla.com at Mon, 18 Jun 2018 21:43:20 +0000
Bug 1460997: Out-of-process interceptors should use r/w instead of r/w/x when changing protection attributes prior to writing a trampoline; r=handyman
373ddd2470ecb30d5c92a61e1088b45d39aab445: Bug 1460917 - Fonts not displaying with FontExplorer X fonts in Firefox 60 r=handyman
Haik Aftandilian <haftandilian@mozilla.com> - Mon, 14 May 2018 16:04:55 -0700 - rev 472635
Push 9374 by jlund@mozilla.com at Mon, 18 Jun 2018 21:43:20 +0000
Bug 1460917 - Fonts not displaying with FontExplorer X fonts in Firefox 60 r=handyman Add back font whitelist rules removed by the fix for bug 1393259 to workaround font sandbox extensions not being issued automatically on OS X 10.11 and earlier. MozReview-Commit-ID: 2hT0BzN3Ggq
501e46865f4327f5e104d4db22d644e54effc30f: Bug 1451524: Switch the default interceptor VM policy over from unique to shared; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 25 Apr 2018 15:25:16 -0600 - rev 471449
Push 9374 by jlund@mozilla.com at Mon, 18 Jun 2018 21:43:20 +0000
Bug 1451524: Switch the default interceptor VM policy over from unique to shared; r=handyman
ec21a8e58a100227c1180c799753ab5819585e2d: Bug 1463596 - Ensure that WritableTargetFunction correctly handles changing of protection attributes across regions that straddle page boundaries and have different initial protection attributes. r=handyman, a=RyanVM
Aaron Klotz <aklotz@mozilla.com> - Wed, 23 May 2018 16:50:49 -0600 - rev 471194
Push 9323 by ryanvm@gmail.com at Wed, 06 Jun 2018 20:05:29 +0000
Bug 1463596 - Ensure that WritableTargetFunction correctly handles changing of protection attributes across regions that straddle page boundaries and have different initial protection attributes. r=handyman, a=RyanVM
2bbdeafb0a5813426f9dbe97f4a42f57fde89770: Bug 1460917 - Fonts not displaying with FontExplorer X fonts in Firefox 60. r=handyman, a=RyanVM
Haik Aftandilian <haftandilian@mozilla.com> - Mon, 14 May 2018 16:04:55 -0700 - rev 470828
Push 9235 by ryanvm@gmail.com at Thu, 17 May 2018 13:49:58 +0000
Bug 1460917 - Fonts not displaying with FontExplorer X fonts in Firefox 60. r=handyman, a=RyanVM Add back font whitelist rules removed by the fix for bug 1393259 to workaround font sandbox extensions not being issued automatically on OS X 10.11 and earlier. MozReview-Commit-ID: 2hT0BzN3Ggq
eea27e04c541c8f3f1221764b00a4f95de23ef78: Bug 1451511: Add cross-process function hooking to DLL interceptor; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Wed, 04 Apr 2018 16:31:43 -0600 - rev 469958
Push 9179 by archaeopteryx@coole-files.de at Thu, 03 May 2018 15:28:18 +0000
Bug 1451511: Add cross-process function hooking to DLL interceptor; r=handyman
83d635a4720194bec17d98035878d33cca1aa0e8: Bug 1451524: Make interceptor shared VM policy compatible with changes from bug 1456054; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Thu, 26 Apr 2018 11:12:55 -0600 - rev 469518
Push 9171 by ryanvm@gmail.com at Sat, 28 Apr 2018 10:35:57 +0000
Bug 1451524: Make interceptor shared VM policy compatible with changes from bug 1456054; r=handyman
13863e08584ae95ac1262b517bf8ef06dd29dbdf: Bug 1456054: Verify that a redirected address is accessible and backed by an image; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Mon, 23 Apr 2018 15:07:54 -0600 - rev 468933
Push 9165 by asasaki@mozilla.com at Thu, 26 Apr 2018 21:04:54 +0000
Bug 1456054: Verify that a redirected address is accessible and backed by an image; r=handyman
27d5c7a1d4c112687b78b4a9f86857378bfc67bb: Bug 1451524: Add a VM policy to the DLL interceptor that allows multiple instances to share a single trampoline space; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Mon, 02 Apr 2018 17:04:17 -0600 - rev 468931
Push 9165 by asasaki@mozilla.com at Thu, 26 Apr 2018 21:04:54 +0000
Bug 1451524: Add a VM policy to the DLL interceptor that allows multiple instances to share a single trampoline space; r=handyman