diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | Src/exec.c | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 0841cb325..b5c41edb5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2018-09-25 Daniel Shahaf <d.s@daniel.shahaf.name> + + * 43489: Src/exec.c: Add error checking on a new write() call. + 2018-09-25 Peter Stephenson <p.w.stephenson@ntlworld.com> * 43543: Src/jobs.c: Improvements to 43535: attempt to keep diff --git a/Src/exec.c b/Src/exec.c index a667b078d..1d537af24 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -2745,7 +2745,10 @@ execcmd_fork(Estate state, int how, int type, Wordcode varspc, flags |= ESUB_JOB_CONTROL; *filelistp = jobtab[thisjob].filelist; entersubsh(flags, &esret); - write(synch[1], &esret, sizeof(esret)); + if (write_loop(synch[1], (const void *) &esret, sizeof(esret)) != sizeof(esret)) { + zerr("Failed to send entersubsh_ret report: %e", errno); + return -1; + } close(synch[1]); zclose(close_if_forked); |