The caller opened the fd, so it should be responsible for closing it.
Signed-off-by: Steffen Prohaska <[email protected]>
---
copy.c | 5 +----
lockfile.c | 3 +++
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/copy.c b/copy.c
index a7f58fd..d0a1d82 100644
--- a/copy.c
+++ b/copy.c
@@ -10,7 +10,6 @@ int copy_fd(int ifd, int ofd)
break;
if (len < 0) {
int read_error = errno;
- close(ifd);
return error("copy-fd: read returned %s",
strerror(read_error));
}
@@ -21,17 +20,14 @@ int copy_fd(int ifd, int ofd)
len -= written;
}
else if (!written) {
- close(ifd);
return error("copy-fd: write returned 0");
} else {
int write_error = errno;
- close(ifd);
return error("copy-fd: write returned %s",
strerror(write_error));
}
}
}
- close(ifd);
return 0;
}
@@ -60,6 +56,7 @@ int copy_file(const char *dst, const char *src, int mode)
return fdo;
}
status = copy_fd(fdi, fdo);
+ close(fdi);
if (close(fdo) != 0)
return error("%s: close error: %s", dst, strerror(errno));
diff --git a/lockfile.c b/lockfile.c
index 2564a7f..2448d30 100644
--- a/lockfile.c
+++ b/lockfile.c
@@ -224,8 +224,11 @@ int hold_lock_file_for_append(struct lock_file *lk, const
char *path, int flags)
} else if (copy_fd(orig_fd, fd)) {
if (flags & LOCK_DIE_ON_ERROR)
exit(128);
+ close(orig_fd);
close(fd);
return -1;
+ } else {
+ close(orig_fd);
}
return fd;
}
--
2.1.0.8.gf3a29c8
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html