|
From: <sv...@va...> - 2014-06-21 09:36:31
|
Author: sewardj
Date: Sat Jun 21 09:36:19 2014
New Revision: 14071
Log:
kernelrpc_mach_vm_allocate_trap writes the resulting address to *ARG2
on successful return. We need to mark this as defined.
Modified:
trunk/coregrind/m_syswrap/syswrap-darwin.c
Modified: trunk/coregrind/m_syswrap/syswrap-darwin.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-darwin.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-darwin.c Sat Jun 21 09:36:19 2014
@@ -8279,12 +8279,17 @@
PRE(kernelrpc_mach_vm_allocate_trap)
{
PRINT("kernelrpc_mach_vm_allocate_trap(target:%s, address:%p, size:%#lx, flags:%#lx)", name_for_port(ARG1), *(void**)ARG2, ARG3, ARG4);
+ PRE_MEM_WRITE("kernelrpc_mach_vm_allocate_trap(address)",
+ ARG2, sizeof(void*));
if ((ARG4 & VM_FLAGS_ANYWHERE) == VM_FLAGS_FIXED)
ML_(notify_core_and_tool_of_mmap)(*(mach_vm_address_t*)ARG2, ARG3, VKI_PROT_READ|VKI_PROT_WRITE, VKI_MAP_ANON, -1, 0);
}
POST(kernelrpc_mach_vm_allocate_trap)
{
PRINT("address:%p size:%#lx", *(void**)ARG2, ARG3);
+ if (ML_(safe_to_deref)(ARG2, sizeof(void*))) {
+ POST_MEM_WRITE(ARG2, sizeof(void*));
+ }
if ((ARG4 & VM_FLAGS_ANYWHERE) != VM_FLAGS_FIXED)
ML_(notify_core_and_tool_of_mmap)(*(mach_vm_address_t*)ARG2, ARG3, VKI_PROT_READ|VKI_PROT_WRITE, VKI_MAP_ANON, -1, 0);
}
|