From: Julian Seward Date: Sat, 21 Jun 2014 09:36:19 +0000 (+0000) Subject: kernelrpc_mach_vm_allocate_trap writes the resulting address to *ARG2 X-Git-Tag: svn/VALGRIND_3_10_0~366 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=33053e3468eec1c85a0b40ebf35f3854678d368f;p=thirdparty%2Fvalgrind.git kernelrpc_mach_vm_allocate_trap writes the resulting address to *ARG2 on successful return. We need to mark this as defined. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14071 --- diff --git a/coregrind/m_syswrap/syswrap-darwin.c b/coregrind/m_syswrap/syswrap-darwin.c index d8708ddc13..87b76f3837 100644 --- a/coregrind/m_syswrap/syswrap-darwin.c +++ b/coregrind/m_syswrap/syswrap-darwin.c @@ -8279,12 +8279,17 @@ POST(psynch_cvclrprepost) 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); }