dhclient: Return non-zero status when script exits due to a signal

r343896 made it such that a non-zero exit status was passed through, but was
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.

Instead, translate the wait status into 8 bits the same way as the shell
calculates $?.

Reviewed by:	kib, Nash Kaminski
MFC after:	1 week
This commit is contained in:
jilles 2019-02-08 23:03:28 +00:00
parent e9437734f7
commit 8f8b9d94a5

View File

@ -2348,7 +2348,8 @@ priv_script_go(void)
if (ip)
script_flush_env(ip->client);
return WEXITSTATUS(wstatus);
return (WIFEXITED(wstatus) ?
WEXITSTATUS(wstatus) : 128 + WTERMSIG(wstatus));
}
void