]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
macos: Fix UNKNOWN task message [id 3447, to mach_task_self(), reply 0x603] (task_reg...
authorRhys Kidd <rhyskidd@gmail.com>
Mon, 1 May 2017 01:44:01 +0000 (01:44 +0000)
committerRhys Kidd <rhyskidd@gmail.com>
Mon, 1 May 2017 01:44:01 +0000 (01:44 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16328

NEWS
coregrind/m_syswrap/priv_syswrap-darwin.h
coregrind/m_syswrap/syswrap-darwin.c

diff --git a/NEWS b/NEWS
index 57fc0d961cafa89bec32b14a0490f2ae8d2d0907..38076a59438a3ed28716597498700888176e5086 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -160,6 +160,8 @@ where XXXXXX is the bug number as listed below.
 379094  Valgrind reports INTERNAL ERROR in rt_sigsuspend syscall wrapper
 379371  UNKNOWN task message [id 3444, to mach_task_self(), reply 0x603]
         (task_register_dyld_image_infos)
+379372  UNKNOWN task message [id 3447, to mach_task_self(), reply 0x603]
+        (task_register_dyld_shared_cache_image_info)
 379390  unhandled syscall: mach:70 (host_create_mach_voucher_trap)
 
 Release 3.12.0 (20 October 2016)
index 5942104f7f9b82bcdaa117ba596d07754913ee6f..6d4e0ab0b8b9bd3b39f4f3bb46a5423206917a65 100644 (file)
@@ -749,6 +749,7 @@ DECL_TEMPLATE(darwin, pid_for_task);
 #if DARWIN_VERS >= DARWIN_10_12
 DECL_TEMPLATE(darwin, host_create_mach_voucher_trap);
 DECL_TEMPLATE(darwin, task_register_dyld_image_infos);
+DECL_TEMPLATE(darwin, task_register_dyld_shared_cache_image_info);
 #endif /* DARWIN_VERS >= DARWIN_10_12 */
 
 DECL_TEMPLATE(darwin, mach_timebase_info);
index 6023302b558644bc2b891f0ae95c1aaee30973c5..a6c5bef17444c61b6d5a3313df68f1c3d4c58571 100644 (file)
@@ -8212,6 +8212,10 @@ PRE(mach_msg_task)
    case 3444:
       CALL_PRE(task_register_dyld_image_infos);
       return;
+
+   case 3447:
+      CALL_PRE(task_register_dyld_shared_cache_image_info);
+      return;
 #endif /* DARWIN_VERS >= DARWIN_10_12 */
       
    case 3801:
@@ -9856,6 +9860,43 @@ POST(task_register_dyld_image_infos)
     }
 }
 
+PRE(task_register_dyld_shared_cache_image_info)
+{
+#pragma pack(4)
+    typedef struct {
+       mach_msg_header_t Head;
+       NDR_record_t NDR;
+       dyld_kernel_image_info_t dyld_cache_image;
+       boolean_t no_cache;
+       boolean_t private_cache;
+    } Request;
+#pragma pack()
+    
+    // Request *req = (Request *)ARG1;
+    
+    PRINT("task_register_dyld_shared_cache_image_info(%s)",
+        name_for_port(MACH_REMOTE));
+    
+    AFTER = POST_FN(task_register_dyld_shared_cache_image_info);
+}
+
+POST(task_register_dyld_shared_cache_image_info)
+{
+#pragma pack(4)
+    typedef struct {
+       mach_msg_header_t Head;
+       NDR_record_t NDR;
+       kern_return_t RetCode;
+    } Reply;
+#pragma pack()
+    
+    Reply *reply = (Reply *)ARG1;
+    if (!reply->RetCode) {
+    } else {
+        PRINT("mig return %d", reply->RetCode);
+    }
+}
+
 #endif /* DARWIN_VERS >= DARWIN_10_12 */