commit | 8e2f3ea4d643de86ef2ee42b45e682bfa43c820d | [log] [tgz] |
---|---|---|
author | Matthew Dempsky <mdempsky@google.com> | Thu Jan 24 16:59:08 2019 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Thu Jan 24 16:59:08 2019 +0000 |
tree | fee637ad169b1fd41fbf5814f993f92e6113bb67 | |
parent | c9b1877cbf31934a57019cc67d7f62628eb69113 [diff] |
[fuchsia] Always allocate executable memory in W^X mode In W^X mode (i.e., FLAG_write_protect_code), the Dart VM allocates code memory with is_executable==false and then later makes it executable with Protect(kReadExecute). However, on Fuchsia, this will require a VMO with ZX_RIGHT_EXECUTE (which soon will not be the default). This CL takes the approach of always adding ZX_RIGHT_EXECUTE when in W^X mode. This is suboptimal because it means all VM allocated memory can be changed to executable, but currently the OS-independent VirtualMemory::Allocate API doesn't provide us a way to identify memory that doesn't need to be executable now but will in the future. (Note that ZX_RIGHT_EXECUTE only *allows* mapping the memory as executable; the memory is still initially mapped by VirtualMemory::Allocate as non-executable.) Extending the VirtualMemory::Allocate API is tracked in FL-172. Bug: SEC-42 Change-Id: I20555c546c5ab1798c4c36b7394f6221d3993c9e Reviewed-on: https://dart-review.googlesource.com/c/90882 Reviewed-by: Zach Anderson <zra@google.com> Commit-Queue: Zach Anderson <zra@google.com>
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Visit the dartlang.org to learn more about the language, tools, getting started, and more.
Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents on our wiki.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.