From 6ba205b2c35e3e024c8c12d2ee1b73363e84da87 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Wed, 19 Jun 2019 17:07:41 -0400 Subject: nftw: fill in stat buf for dangling links [BZ #23501] As per Austin Group interpretation, "the object" wrt a dangling symlink is the symlink itself, despite FTW_PHYS. Reviewed-by: Tulio Magno Quites Machado Filho --- io/ftw.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'io/ftw.c') diff --git a/io/ftw.c b/io/ftw.c index 33e1a5e..fefcf91 100644 --- a/io/ftw.c +++ b/io/ftw.c @@ -423,10 +423,12 @@ process_entry (struct ftw_data *data, struct dir_data *dir, const char *name, result = -1; else if (data->flags & FTW_PHYS) flag = FTW_NS; - else if (d_type == DT_LNK) - flag = FTW_SLN; else { + /* Old code left ST undefined for dangling DT_LNK without + FTW_PHYS set; a clarification at the POSIX level suggests + it should contain information about the link (ala lstat). + We do our best to fill in what data we can. */ if (dir->streamfd != -1) statres = FXSTATAT (_STAT_VER, dir->streamfd, name, &st, AT_SYMLINK_NOFOLLOW); -- cgit v1.1