From: Junio C Hamano Date: Wed, 17 Dec 2008 20:37:53 +0000 (-0800) Subject: builtin-blame.c: use strbuf_readlink() X-Git-Tag: v1.6.1-rc4~20^2~1 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/edfd45d2a0fc85d55479e13e8e3dc7e975a313ce builtin-blame.c: use strbuf_readlink() When faking a commit out of the work tree contents, use strbuf_readlink() to read the contents of symbolic links. Signed-off-by: Junio C Hamano Acked-by: Linus Torvalds --- diff --git a/builtin-blame.c b/builtin-blame.c index a0d60145f2..aae14ef8bb 100644 --- a/builtin-blame.c +++ b/builtin-blame.c @@ -1996,7 +1996,6 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con if (!contents_from || strcmp("-", contents_from)) { struct stat st; const char *read_from; - unsigned long fin_size; if (contents_from) { if (stat(contents_from, &st) < 0) @@ -2008,7 +2007,6 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con die("Cannot lstat %s", path); read_from = path; } - fin_size = xsize_t(st.st_size); mode = canon_mode(st.st_mode); switch (st.st_mode & S_IFMT) { case S_IFREG: @@ -2016,9 +2014,8 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con die("cannot open or read %s", read_from); break; case S_IFLNK: - if (readlink(read_from, buf.buf, buf.alloc) != fin_size) + if (strbuf_readlink(&buf, read_from, st.st_size) < 0) die("cannot readlink %s", read_from); - buf.len = fin_size; break; default: die("unsupported file type %s", read_from);