diff options
author | Steffen Prohaska <prohaska@zib.de> | 2014-08-26 17:23:24 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-08-28 10:25:14 -0700 |
commit | b29763aa9bcbb99a59aec3820e30ff1864cfa765 (patch) | |
tree | d3dcda097520b70a990e48e7ea52b9bbb9ad206d /lockfile.c | |
parent | 02710228dd79d9f9c6fa180233491639b603c06d (diff) | |
download | git-b29763aa9bcbb99a59aec3820e30ff1864cfa765.tar.gz |
copy_fd(): do not close the input file descriptor
The caller, not this function, opened the file descriptor; it is
selfish for the callee to close it when it is done reading from it.
The caller may want an option to rewind and re-read the contents
after it returns.
Simplify the loop to copy the input in full to the output; its
body essentially is what a call to write_in_full() helper does.
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'lockfile.c')
-rw-r--r-- | lockfile.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lockfile.c b/lockfile.c index 2564a7f544..2448d30cd0 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; } |