diff options
author | Jim Meyering <jim@meyering.net> | 1994-01-26 18:19:10 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1994-01-26 18:19:10 +0000 |
commit | 5629153f1eadc2b27dd48ff18a194f6819d9d732 (patch) | |
tree | 60428c4cc180a9940e5d85ae62154f60dfde43f1 /src/mv.c | |
parent | 2b16e3652c9625a41bbe9a1573316a5c1e65141b (diff) | |
download | coreutils-5629153f1eadc2b27dd48ff18a194f6819d9d732.tar.xz |
.
Diffstat (limited to 'src/mv.c')
-rw-r--r-- | src/mv.c | 27 |
1 files changed, 10 insertions, 17 deletions
@@ -68,6 +68,8 @@ enum backup_type get_version (); int isdir (); int yesno (); void error (); +int safe_read (); +int full_write (); void strip_trailing_slashes (); int eaccess_stat (); char *stpcpy (); @@ -393,25 +395,16 @@ copy_reg (source, dest) return 1; } - while ((len = read (ifd, buf, sizeof (buf))) > 0) + while ((len = safe_read (ifd, buf, sizeof (buf))) > 0) { - int wrote = 0; - char *bp = buf; - - do + if (full_write (ofd, buf, len) < 0) { - wrote = write (ofd, bp, len); - if (wrote < 0) - { - error (0, errno, "%s", dest); - close (ifd); - close (ofd); - unlink (dest); - return 1; - } - bp += wrote; - len -= wrote; - } while (len > 0); + error (0, errno, "%s", dest); + close (ifd); + close (ofd); + unlink (dest); + return 1; + } } if (len < 0) { |