From 848222cb91bb2dd5c1dcb6e4d4abc3c6e5c033af Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Thu, 21 Dec 2017 14:34:42 +0100 Subject: [PATCH] fixup! dir.c: regression fix for add_excludes with fscache It is unlikely that the fstat() call fails, but not impossible... Coverity pointed out that we check for its return value elsewhere, so we might just as well do it here, too. Signed-off-by: Johannes Schindelin --- dir.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dir.c b/dir.c index 5985288ecd..086242d80a 100644 --- a/dir.c +++ b/dir.c @@ -788,8 +788,10 @@ static int add_excludes(const char *fname, const char *base, int baselen, fd = open(fname, O_RDONLY); if (fd < 0) warn_on_fopen_errors(fname); - if (S_ISLNK(st.st_mode)) - fstat(fd, &st); + if (S_ISLNK(st.st_mode) && fstat(fd, &st) < 0) { + warn_on_fopen_errors(fname); + fd = -1; + } } } else { fd = open(fname, O_RDONLY);