summaryrefslogtreecommitdiff
path: root/read-cache.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@osdl.org>2006-07-31 16:55:15 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-07-31 18:55:56 (GMT)
commit7f8508e8d320d768a34483682e9f2dc5af1af04b (patch)
tree40434a406220ddd64980cc6f23ea5a6d8f4c2c7c /read-cache.c
parentb63fafdfd844c2037fba53b9944431c1378b4135 (diff)
downloadgit-7f8508e8d320d768a34483682e9f2dc5af1af04b.zip
git-7f8508e8d320d768a34483682e9f2dc5af1af04b.tar.gz
git-7f8508e8d320d768a34483682e9f2dc5af1af04b.tar.bz2
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>
Diffstat (limited to 'read-cache.c')
-rw-r--r--read-cache.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/read-cache.c b/read-cache.c
index c0b0313..f92cdaa 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;
}