]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
kernelrpc_mach_vm_allocate_trap writes the resulting address to *ARG2
authorJulian Seward <jseward@acm.org>
Sat, 21 Jun 2014 09:36:19 +0000 (09:36 +0000)
committerJulian Seward <jseward@acm.org>
Sat, 21 Jun 2014 09:36:19 +0000 (09:36 +0000)
on successful return.  We need to mark this as defined.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14071

coregrind/m_syswrap/syswrap-darwin.c

index d8708ddc13e82de276c0889ffa2c938e27f66463..87b76f3837dbc4b96e45909c3e8652682910eac9 100644 (file)
@@ -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);
 }