Home | History | Annotate | Download | only in nacl
      1 This is a prototype for plumbing Mojo into the NaCl sandbox.  It is
      2 currently insecure (see below), does not provide a stable ABI (IRT
      3 support must be added), and does not support Mojo functions that
      4 return pointers (for example, MojoMapBuffer).
      5 
      6 generator/interface.py contains a programmatic description of the
      7 stable Mojo interface.  This will need to be updated as the interface
      8 changes.  Run generator/generate_nacl_bindings.py to generate the
      9 bindings that plumb this interface into the NaCl sandbox.
     10 
     11 To test: Build "monacl_shell" and "monacl_test".  Run monacl_shell
     12 with the IRT as the first argument and the monacl_test as the second
     13 argument.  For example, to run a Debug 32-bit Intel build:
     14 
     15   cd out/Debug
     16   ./monacl_shell irt_core_newlib_x32.nexe monacl_test_newlib_x32.nexe
     17 
     18 Security TODO list:
     19   Separate trusted and untrusted Mojo handles.
     20   Validate and copy option structures.
     21   Protect untrusted buffers passed into Mojo:
     22     NaClVmIoWillStart/HasEnded.
     23     volatile accesses to untrusted memory (untrusted code could race).
     24   Overflow checking in array bounds validation.