diff --git a/builtin-blame.c b/builtin-blame.c
index 16c0ca82063b35651cacc56b20ebd73c3526acfb..e3112a2d5bb2158bcc189942090a936c3f2b7cf6 100644 (file)
--- a/builtin-blame.c
+++ b/builtin-blame.c
@@ -2002,7 +2002,6 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con
unsigned char head_sha1[20];
struct strbuf buf;
const char *ident;
- int fd;
time_t now;
int size, len;
struct cache_entry *ce;
@@ -2041,11 +2040,8 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con
mode = canon_mode(st.st_mode);
switch (st.st_mode & S_IFMT) {
case S_IFREG:
- fd = open(read_from, O_RDONLY);
- if (fd < 0)
- die("cannot open %s", read_from);
- if (strbuf_read(&buf, fd, 0) != xsize_t(st.st_size))
- die("cannot read %s", read_from);
+ if (strbuf_read_file(&buf, read_from, st.st_size) != st.st_size)
+ die("cannot open or read %s", read_from);
break;
case S_IFLNK:
if (readlink(read_from, buf.buf, buf.alloc) != fin_size)