summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorPatrick Mooney <patrick.f.mooney@gmail.com>2015-02-14 02:32:16 +0000
committerPatrick Mooney <patrick.f.mooney@gmail.com>2015-02-14 02:32:16 +0000
commitd34c3434a6ead24ec3e41daebf60ff85376c9e47 (patch)
treee1db61130c17a6f9ca85db203aa8c507d5338c1b /usr/src
parenteb20fbe2fac1596990392cf5a8ea5030948e4768 (diff)
downloadillumos-joyent-d34c3434a6ead24ec3e41daebf60ff85376c9e47.tar.gz
OS-3841 lxbrand si_status mangled on SIGCHLD
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/lib/brand/lx/lx_brand/common/signal.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/usr/src/lib/brand/lx/lx_brand/common/signal.c b/usr/src/lib/brand/lx/lx_brand/common/signal.c
index 9029249b10..7d3865c2de 100644
--- a/usr/src/lib/brand/lx/lx_brand/common/signal.c
+++ b/usr/src/lib/brand/lx/lx_brand/common/signal.c
@@ -561,8 +561,12 @@ stol_siginfo(siginfo_t *siginfop, lx_siginfo_t *lx_siginfop)
case LX_SIGCHLD:
lx_siginfo.lsi_pid = siginfop->si_pid;
- lx_siginfo.lsi_status = stol_status(
- siginfop->si_status);
+ if (siginfop->si_code == CLD_EXITED) {
+ lx_siginfo.lsi_status = siginfop->si_status;
+ } else {
+ lx_siginfo.lsi_status = stol_status(
+ siginfop->si_status);
+ }
lx_siginfo.lsi_utime = siginfop->si_utime;
lx_siginfo.lsi_stime = siginfop->si_stime;
break;