From: Junio C Hamano Date: Sun, 18 Nov 2007 10:21:24 GMT Subject: [PATCH] file_exists(): dangling symlinks do exist Message-ID: <1195381287-26823-1-git-send-email-gitster@pobox.com> This function is used to see if a path given by the user does exist on the filesystem. A symbolic link that does not point anywhere does exist but running stat() on it would yield an error, and it incorrectly said it does not exist. Signed-off-by: Junio C Hamano --- dir.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff --git a/dir.c b/dir.c index 01790ab..87e5dec 100644 --- a/dir.c +++ b/dir.c @@ -688,11 +688,10 @@ int read_directory(struct dir_struct *dir, const char *path, const char *base, i return dir->nr; } -int -file_exists(const char *f) +int file_exists(const char *f) { - struct stat sb; - return stat(f, &sb) == 0; + struct stat sb; + return lstat(f, &sb) == 0; } /* -- 1.5.3.5.1815.g9445b