[38.0.x] Prevent using shared memories with Memory
#12020
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit fixes a few issues where it was possible to represent a wasm shared linear memory with the
wasmtime::Memorytype. This is not sound becausewasmtime::Memoryprovides safe Rust access to the bytes where that is not possible with wasm shared memories. Shared memories in Rust must be represented bySharedMemory, notwasmtime::Memory.Specifically this commit prevents two vectors of this happening:
Memory::newnow requires that the memory type specified is non-shared. InsteadSharedMemory::newmust be used instead.Core dumps now skip over shared memories when iterating over all memories in the store. Supporting shared memories is a more invasive change and will happen on Wasmtime's
mainbranch.