Justus Winter, le Wed 27 Nov 2013 13:31:09 +0100, a écrit :
> * init/init.c (S_startup_essential_task): Fix port leak.

Ack.

> ---
>  init/init.c |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/init/init.c b/init/init.c
> index de5dd6b..b7b40bd 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"))
> -- 
> 1.7.10.4
> 

-- 
Samuel
"c'est pas nous qui sommes à la rue, c'est la rue qui est à nous"

Reply via email to