mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
About
This is a prototype for plumbing Mojo into the NaCl sandbox. It is
currently insecure (see below), does not provide a stable ABI (IRT
support must be added), and does not support Mojo functions that
return pointers (for example, MojoMapBuffer).
Using
To use this prototype run mojo/tools/mojob.py gn --nacl and then build
and test as usual.
Run mojo/tools/mojob.py nacltest for additional nacl-specific tests.
Notes
generator/interface.py contains a programmatic description of the
stable Mojo interface. This will need to be updated as the interface
changes. Run generator/generate_nacl_bindings.py to generate the
bindings that plumb this interface into the NaCl sandbox.
Security TODO
- Separate trusted and untrusted Mojo handles.
- Validate and copy option structures.
- Protect untrusted buffers passed into Mojo:
NaClVmIoWillStart/HasEnded.- volatile accesses to untrusted memory (untrusted code could race).
- Overflow checking in array bounds validation.