Commit b1c703e5f5e44514e8db958a5fb39ff16e514fd8

Lubosz Sarnecki 2021-12-08T14:53:46

Reland "system_utils: Add memory protection functionality." This is a reland of ab75a90ff4ecb9d99b5c72bde92222b07c285401 that was reverted in b007e667a8f94b47788a5ba0b2e61c9ac2d1285f. Implement PageFaultHandler and memory protection functions. Uses mprotect and sigaction on POSIX and equivalent Win API functions on win32. Add tests to system_utils_unittests. Add stubs for winuwp. Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler test to make it succeed on release builds, as the code was optimized out. Furthermore the test did not correctly remove protection from the whole area it protected, which caused a hang after deinitialization on some build configurations, since the custom page fault handler was also still in place. The test now correclty removes protection from the whole area and sets back the original page fault handler. Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" Bug: angleproject:5857 Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>