From 0bc74163d5406e305b84f8f51dbce097bb46fa90 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Tue, 1 Nov 2016 18:02:34 +0100 Subject: 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 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'boot') diff --git a/boot/boot.c b/boot/boot.c index db5c3964..f7c7d77f 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; -- cgit v1.2.3