diff --git a/copy.c b/copy.c index 7100eedbc3..08a3d388a4 100644 --- a/copy.c +++ b/copy.c @@ -22,11 +22,14 @@ int copy_fd(int ifd, int ofd) buf += written; len -= written; } - else if (!written) + else if (!written) { + close(ifd); return error("copy-fd: write returned 0"); - else + } else { + close(ifd); return error("copy-fd: write returned %s", strerror(errno)); + } } } close(ifd);