svn commit: r343896 - head/sbin/dhclient
Jilles Tjoelker
jilles at stack.nl
Fri Feb 8 13:23:09 UTC 2019
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 at ixsystems.com>.
> Submitted by: Nash Kaminski <nashkaminski at 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
More information about the svn-src-all
mailing list