Fix repeatedly initialize shared memory data and protect the memory's fields (#2673)
Avoid repeatedly initializing the shared memory data when creating the child thread in lib-pthread or lib-wasi-threads. Add shared memory lock when accessing some fields of the memory instance if the memory instance is shared. Init shared memory's memory_data_size/memory_data_end fields according to the current page count but not max page count. Add wasm_runtime_set_mem_bound_check_bytes, and refine the error message when shared memory flag is found but the feature isn't enabled.
This commit is contained in:
@ -1375,7 +1375,15 @@ load_memory(const uint8 **p_buf, const uint8 *buf_end, WASMMemory *memory,
|
||||
return false;
|
||||
}
|
||||
if (memory->flags > 1) {
|
||||
set_error_buf(error_buf, error_buf_size, "integer too large");
|
||||
if (memory->flags & 2) {
|
||||
set_error_buf(error_buf, error_buf_size,
|
||||
"shared memory flag was found, "
|
||||
"please enable shared memory, lib-pthread "
|
||||
"or lib-wasi-threads");
|
||||
}
|
||||
else {
|
||||
set_error_buf(error_buf, error_buf_size, "invalid memory flags");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user