[Bug] Use ReadWrite scope to fill memory in JitAllocator::shrink() (MAP_JIT)

This commit is contained in:
kobalicek
2023-02-27 20:41:08 +01:00
parent 965d19506f
commit c87476dd5d

View File

@@ -915,8 +915,13 @@ Error JitAllocator::shrink(void* rxPtr, size_t newSize) noexcept {
block->markShrunkArea(areaStart + areaShrunkSize, areaEnd);
// Fill released memory if the secure mode is enabled.
if (Support::test(impl->options, JitAllocatorOptions::kFillUnusedMemory))
JitAllocatorImpl_fillPattern(block->rwPtr() + (areaStart + areaShrunkSize) * pool->granularity, fillPattern(), areaDiff * pool->granularity);
if (Support::test(impl->options, JitAllocatorOptions::kFillUnusedMemory)) {
uint8_t* spanPtr = block->rwPtr() + (areaStart + areaShrunkSize) * pool->granularity;
size_t spanSize = areaDiff * pool->granularity;
VirtMem::ProtectJitReadWriteScope scope(spanPtr, spanSize);
JitAllocatorImpl_fillPattern(spanPtr, fillPattern(), spanSize);
}
}
return kErrorOk;