diff options
author | Linus Torvalds <torvalds@osdl.org> | 2006-07-31 09:55:15 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-07-31 11:55:56 -0700 |
commit | 7f8508e8d320d768a34483682e9f2dc5af1af04b (patch) | |
tree | 40434a406220ddd64980cc6f23ea5a6d8f4c2c7c | |
parent | tar-tree: illustrate an obscure feature better (diff) | |
download | tgif-7f8508e8d320d768a34483682e9f2dc5af1af04b.tar.xz |
Fix double "close()" in ce_compare_data
Doing an "strace" on "git diff" shows that we close() a file descriptor
twice (getting EBADFD on the second one) when we end up in ce_compare_data
if the index does not match the checked-out stat information.
The "index_fd()" function will already have closed the fd for us, so we
should not close it again.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | read-cache.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/read-cache.c b/read-cache.c index c0b031367b..f92cdaacee 100644 --- a/read-cache.c +++ b/read-cache.c @@ -61,7 +61,7 @@ static int ce_compare_data(struct cache_entry *ce, struct stat *st) unsigned char sha1[20]; if (!index_fd(sha1, fd, st, 0, NULL)) match = memcmp(sha1, ce->sha1, 20); - close(fd); + /* index_fd() closed the file descriptor already */ } return match; } |