Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Feb 2019 14:23:01 +0100
From:      Jilles Tjoelker <jilles@stack.nl>
To:        Konstantin Belousov <kib@FreeBSD.org>, Ryan Moeller <ryan@ixsystems.com>, Nash Kaminski <nashkaminski@gmail.com>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r343896 - head/sbin/dhclient
Message-ID:  <20190208132301.GA5715@stack.nl>
In-Reply-To: <201902080736.x187a8LM002846@repo.freebsd.org>
References:  <201902080736.x187a8LM002846@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Feb 08, 2019 at 07:36:08AM +0000, Konstantin Belousov wrote:
> Author: kib
> Date: Fri Feb  8 07:36:08 2019
> New Revision: 343896
> URL: https://svnweb.freebsd.org/changeset/base/343896

> Log:
>   Correctly return exit status from the exited process.

>   This is also OpenBSD rev. 1.117, as pointed out by
>   Ryan Moeller <ryan@ixsystems.com>.

>   Submitted by:	Nash Kaminski <nashkaminski@gmail.com>
>   MFC after:	1 week

> Modified:
>   head/sbin/dhclient/dhclient.c

> Modified: head/sbin/dhclient/dhclient.c
> ==============================================================================
> --- head/sbin/dhclient/dhclient.c	Fri Feb  8 06:19:28 2019	(r343895)
> +++ head/sbin/dhclient/dhclient.c	Fri Feb  8 07:36:08 2019	(r343896)
> @@ -2348,7 +2348,7 @@ priv_script_go(void)
>  	if (ip)
>  		script_flush_env(ip->client);
>  
> -	return (wstatus & 0xff);
> +	return WEXITSTATUS(wstatus);
>  }
>  
>  void

This is probably a big improvement in practice, but it is still wrong if
the script exits on a signal. POSIX does not say what the WEXITSTATUS
macro returns in this case and in practice 0 is a common value. Perhaps
you want

return WIFEXITED(wstatus) ? WEXITSTATUS(wstatus) : 128 + WTERMSIG(wstatus);

imitating what the shell does to translate a wait status into 8 bits?

-- 
Jilles Tjoelker



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190208132301.GA5715>