mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-09 17:44:48 +09:00
[wasm] Be more cautious about page zeroing (#106080)
Should fix #106007
This commit is contained in:
parent
679a284f54
commit
68511fd27f
1 changed files with 5 additions and 3 deletions
|
@ -125,7 +125,7 @@ static unsigned long
|
||||||
prot_flags_for_activate (int activate)
|
prot_flags_for_activate (int activate)
|
||||||
{
|
{
|
||||||
unsigned long prot_flags = activate? MONO_MMAP_READ|MONO_MMAP_WRITE: MONO_MMAP_NONE;
|
unsigned long prot_flags = activate? MONO_MMAP_READ|MONO_MMAP_WRITE: MONO_MMAP_NONE;
|
||||||
return prot_flags | MONO_MMAP_PRIVATE | MONO_MMAP_ANON | MONO_MMAP_NOZERO;
|
return prot_flags | MONO_MMAP_PRIVATE | MONO_MMAP_ANON;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gpointer
|
static gpointer
|
||||||
|
@ -138,13 +138,15 @@ alloc_sb (Descriptor *desc)
|
||||||
if (pagesize == -1)
|
if (pagesize == -1)
|
||||||
pagesize = mono_pagesize ();
|
pagesize = mono_pagesize ();
|
||||||
|
|
||||||
|
// NOTE: Allocated memory is not guaranteed to be zeroed
|
||||||
sb_header = desc->block_size == pagesize ?
|
sb_header = desc->block_size == pagesize ?
|
||||||
mono_valloc (NULL, desc->block_size, prot_flags_for_activate (TRUE), desc->heap->account_type) :
|
mono_valloc (NULL, desc->block_size, prot_flags_for_activate (TRUE) | MONO_MMAP_NOZERO, desc->heap->account_type) :
|
||||||
mono_valloc_aligned (desc->block_size, desc->block_size, prot_flags_for_activate (TRUE), desc->heap->account_type);
|
mono_valloc_aligned (desc->block_size, desc->block_size, prot_flags_for_activate (TRUE) | MONO_MMAP_NOZERO, desc->heap->account_type);
|
||||||
|
|
||||||
g_assertf (sb_header, "Failed to allocate memory for the lock free allocator");
|
g_assertf (sb_header, "Failed to allocate memory for the lock free allocator");
|
||||||
g_assert (sb_header == sb_header_for_addr (sb_header, desc->block_size));
|
g_assert (sb_header == sb_header_for_addr (sb_header, desc->block_size));
|
||||||
|
|
||||||
|
// Initializes the header fully
|
||||||
*(Descriptor**)sb_header = desc;
|
*(Descriptor**)sb_header = desc;
|
||||||
//g_print ("sb %p for %p\n", sb_header, desc);
|
//g_print ("sb %p for %p\n", sb_header, desc);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue