flist_gen_dirent() does a fts_read and inside that tries to read the
symlink information. Now since fts_open did not specifiy FTS_NOCHDIR
the symlink_read call needs to use ent->fts_accpath instead of f->path
which was based on ent->fts_path.

OK?
-- 
:wq Claudio

Index: flist.c
===================================================================
RCS file: /cvs/src/usr.bin/rsync/flist.c,v
retrieving revision 1.34
diff -u -p -r1.34 flist.c
--- flist.c     2 Sep 2021 21:06:06 -0000       1.34
+++ flist.c     3 Sep 2021 13:09:13 -0000
@@ -992,7 +992,7 @@ flist_gen_dirent(struct sess *sess, char
                /* Optionally copy link information. */
 
                if (S_ISLNK(ent->fts_statp->st_mode)) {
-                       f->link = symlink_read(f->path);
+                       f->link = symlink_read(ent->fts_accpath);
                        if (f->link == NULL) {
                                ERRX1("symlink_read");
                                goto out;

Reply via email to