From 78636c03a561d3a9a1b7c008dc390fe854196309 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Mon, 25 Nov 2013 13:05:01 +0100 Subject: init: fix port leak * init/init.c (S_startup_essential_task): Fix port leak. --- init/init.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/init/init.c b/init/init.c index de5dd6b6..b7b40bd2 100644 --- a/init/init.c +++ b/init/init.c @@ -1202,6 +1202,10 @@ S_startup_essential_task (mach_port_t server, static int authinit, procinit, execinit; int fail; + /* Always deallocate the extra reference this message carries. */ + if (MACH_PORT_VALID (credential)) + mach_port_deallocate (mach_task_self (), credential); + if (credential != host_priv) return EPERM; @@ -1209,8 +1213,6 @@ S_startup_essential_task (mach_port_t server, if (fail) return fail; - mach_port_deallocate (mach_task_self (), credential); - if (!booted) { if (!strcmp (name, "auth")) -- cgit v1.2.3