diff options
author | DJ Delorie <dj@redhat.com> | 2019-06-19 17:07:41 -0400 |
---|---|---|
committer | DJ Delorie <dj@redhat.com> | 2019-07-08 17:45:13 -0400 |
commit | 6ba205b2c35e3e024c8c12d2ee1b73363e84da87 (patch) | |
tree | 6dc88a671ae81090700da9af7c24f3811169650d /io/ftw.c | |
parent | 744481038703ddc0ce571bdcbedc4f4a722da039 (diff) | |
download | glibc-6ba205b2c35e3e024c8c12d2ee1b73363e84da87.tar.gz |
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 <tuliom@linux.ibm.com>
Diffstat (limited to 'io/ftw.c')
-rw-r--r-- | io/ftw.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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); |