commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[hurd] 19/28: Adjust to the fixed new task notifications.


From: Samuel Thibault
Subject: [hurd] 19/28: Adjust to the fixed new task notifications.
Date: Wed, 16 Nov 2016 08:30:27 +0000

This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch upstream
in repository hurd.

commit 0bc74163d5406e305b84f8f51dbce097bb46fa90
Author: Justus Winter <address@hidden>
Date:   Tue Nov 1 18:02:34 2016 +0100

    Adjust to the fixed new task notifications.
    
    * boot/boot.c (S_mach_notify_new_task): The send rights are now indeed
    moved to the target task, adjust accordingly.
    * proc/mgt.c (S_mach_notify_new_task): Likewise.
---
 boot/boot.c | 6 ++++--
 proc/mgt.c  | 4 ++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/boot/boot.c b/boot/boot.c
index db5c396..f7c7d77 100644
--- a/boot/boot.c
+++ b/boot/boot.c
@@ -1942,6 +1942,7 @@ S_mach_notify_new_task (mach_port_t notify,
     goto fail;
   assert (! MACH_PORT_VALID (previous));
 
+  mach_port_mod_refs (mach_task_self (), task, MACH_PORT_RIGHT_SEND, +1);
   err = hurd_ihash_add (&task_ihash,
                         (hurd_ihash_key_t) task, (hurd_ihash_value_t) task);
   if (err)
@@ -1951,9 +1952,10 @@ S_mach_notify_new_task (mach_port_t notify,
     }
 
   if (MACH_PORT_VALID (new_task_notification))
-    /* Relay the notification.  */
-    mach_notify_new_task (new_task_notification, task, parent);
+    /* Relay the notification.  This consumes task and parent.  */
+    return mach_notify_new_task (new_task_notification, task, parent);
 
+  mach_port_deallocate (mach_task_self (), task);
   mach_port_deallocate (mach_task_self (), parent);
   return 0;
 
diff --git a/proc/mgt.c b/proc/mgt.c
index d572788..8dc82f1 100644
--- a/proc/mgt.c
+++ b/proc/mgt.c
@@ -1082,8 +1082,8 @@ S_mach_notify_new_task (struct port_info *notify,
       err = S_proc_child (parentp, task);
       assert_perror (err);
 
-      /* Relay the notification.  */
-      mach_notify_new_task (childp->p_task_namespace, task, parent);
+      /* Relay the notification.  This consumes task and parent.  */
+      return mach_notify_new_task (childp->p_task_namespace, task, parent);
     }
 
   mach_port_deallocate (mach_task_self (), task);

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-hurd/hurd.git



reply via email to

[Prev in Thread] Current Thread [Next in Thread]