Merge branch 'ao/diff-populate-filespec-lstat-errorpath-fix' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 15 Nov 2017 03:04:59 +0000 (12:04 +0900)
committerJunio C Hamano <gitster@pobox.com>
Wed, 15 Nov 2017 03:04:59 +0000 (12:04 +0900)
After an error from lstat(), diff_populate_filespec() function
sometimes still went ahead and used invalid data in struct stat,
which has been fixed.

* ao/diff-populate-filespec-lstat-errorpath-fix:
  diff: fix lstat() error handling in diff_populate_filespec()

diff.c

diff --git a/diff.c b/diff.c
index e6814b9..1898dd3 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -3545,14 +3545,12 @@ int diff_populate_filespec(struct diff_filespec *s, unsigned int flags)
                int fd;
 
                if (lstat(s->path, &st) < 0) {
-                       if (errno == ENOENT) {
-                       err_empty:
-                               err = -1;
-                       empty:
-                               s->data = (char *)"";
-                               s->size = 0;
-                               return err;
-                       }
+               err_empty:
+                       err = -1;
+               empty:
+                       s->data = (char *)"";
+                       s->size = 0;
+                       return err;
                }
                s->size = xsize_t(st.st_size);
                if (!s->size)