When a size of 0 is passed to copyfd_size, dont do anything, it was
authorGlenn L McGrath <bug1@ihug.co.nz>
Mon, 24 Nov 2003 23:50:07 +0000 (23:50 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Mon, 24 Nov 2003 23:50:07 +0000 (23:50 -0000)
reading untill eof which breaks tar

libbb/copyfd.c

index 62ada8e..1ef994c 100644 (file)
@@ -78,7 +78,10 @@ extern size_t bb_full_fd_action(int src_fd, int dst_fd, const size_t size, ssize
 
 extern int bb_copyfd_size(int fd1, int fd2, const off_t size)
 {
-       return(bb_full_fd_action(fd1, fd2, size, bb_full_write));
+       if (size) {
+               return(bb_full_fd_action(fd1, fd2, size, bb_full_write));
+       }
+       return(0);
 }
 
 extern int bb_copyfd_eof(int fd1, int fd2)