8e2f3ea4d643de86ef2ee42b45e682bfa43c820d
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
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Using Dart
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.
Building Dart
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.
Contributing to Dart
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.
License & patents
Description
Languages
Dart
84.6%
C++
13%
Python
0.7%
JavaScript
0.5%
HTML
0.4%
Other
0.5%