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>