You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We're updating our rust compiler version when we merge the domain socket branch. This fortunately/unfortunately revealed a bug where it was possible to convert pointers that arent 8-byte aligned that rust just let slide before this version (even though thats technically undefined behavior).
@RusherRG found this bug with the updated compiler when testing bind"
thread '<unnamed>' panicked at 'misaligned pointer dereference: address must be a multiple of 0x8 but is 0x64c810067d1c', src/interface/types.rs:435:61
This has the effect of giving a venue to force a trusted fault from user code. We should check all pointer alignment in NaCl before we call to RustPOSIX, and if theyre not aligned return an error.
The text was updated successfully, but these errors were encountered:
We should be able to do this easily in our pointer conversion functions since we use them for all pointer translation. Let's do a check in NaClUserToSysAddrRangeProt and NaClUserToSysAddrProt for 8-bit alignment and if not return an error.
We're updating our rust compiler version when we merge the domain socket branch. This fortunately/unfortunately revealed a bug where it was possible to convert pointers that arent 8-byte aligned that rust just let slide before this version (even though thats technically undefined behavior).
@RusherRG found this bug with the updated compiler when testing bind"
This has the effect of giving a venue to force a trusted fault from user code. We should check all pointer alignment in NaCl before we call to RustPOSIX, and if theyre not aligned return an error.
The text was updated successfully, but these errors were encountered: