From: Egor Chelak Date: Fri, 6 Nov 2020 17:39:02 +0000 (+0200) Subject: ul_copy_file: use all_read/all_write X-Git-Tag: v2.37-rc1~393^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f19a16550af6fb87f02eacf9af9149e95fa2b965;p=thirdparty%2Futil-linux.git ul_copy_file: use all_read/all_write Suggested-by: Karel Zak Reviewed-by: Sami Kerola Signed-off-by: Egor Chelak --- diff --git a/lib/fileutils.c b/lib/fileutils.c index a166c5d41e..61304c77ea 100644 --- a/lib/fileutils.c +++ b/lib/fileutils.c @@ -17,6 +17,7 @@ #include #include "c.h" +#include "all-io.h" #include "fileutils.h" #include "pathnames.h" @@ -254,13 +255,12 @@ char *stripoff_last_component(char *path) static int copy_file_simple(int from, int to) { - ssize_t nr, nw, off; + ssize_t nr; char buf[BUFSIZ]; - while ((nr = read(from, buf, sizeof(buf))) > 0) - for (off = 0; nr > 0; nr -= nw, off += nw) - if ((nw = write(to, buf + off, nr)) < 0) - return -2; + while ((nr = read_all(from, buf, sizeof(buf))) > 0) + if (write_all(to, buf, nr) == -1) + return -2; if (nr < 0) return -1; #ifdef HAVE_EXPLICIT_BZERO