From b8ba6796793816daeb7e01e269b0377f1dbdb747 Mon Sep 17 00:00:00 2001 From: Mark Grondona <mgrondona@llnl.gov> Date: Mon, 6 Oct 2003 23:36:12 +0000 Subject: [PATCH] o cbuf_write_from_fd() may return short reads -- read until EOF. --- src/srun/srun.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/srun/srun.c b/src/srun/srun.c index a72c94d23e9..542e82980f3 100644 --- a/src/srun/srun.c +++ b/src/srun/srun.c @@ -551,8 +551,15 @@ _build_script (char *fname, int file_type) int len = buffer ? strlen(buffer) : 0; int size; - if ((size = cbuf_write_from_fd(cb, fd, -1, NULL)) < 0) - error("Unable to read %s", fname); + while ((size = cbuf_write_from_fd(cb, fd, -1, NULL)) > 0) + ; + + if (size < 0) { + error ("unable to read %s: %m", fname); + cbuf_destroy(cb); + return NULL; + } + cbuf_write(cb, "\0", 1, NULL); xrealloc(buffer, cbuf_used(cb) + len +1); -- GitLab