From e34e2bb3c703aa8c47d85ba4b4a86f6ae5dc0404 Mon Sep 17 00:00:00 2001 From: "Ned T. Crigler" Date: Thu, 19 Jun 2025 20:03:57 -0700 Subject: Handle partial reads of the execvp error string It is possible that reading the entire error string requires multiple read() calls. --- master.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/master.c b/master.c index 75f4926..6d6d4d2 100644 --- a/master.c +++ b/master.c @@ -672,7 +672,12 @@ master_main(char **argv, int waitattach, int dontfork) len = read(fd[0], buf, sizeof(buf)); if (len > 0) { - write_buf_or_fail(2, buf, len); + do + { + write_buf_or_fail(2, buf, len); + len = read(fd[0], buf, sizeof(buf)); + } while (len > 0); + kill(pid, SIGTERM); return 1; } -- cgit v1.2.3