Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Aug 2026 13:33:40 -0600
From:      Alan Somers <asomers@freebsd.org>
Cc:        Mark Johnston <markj@freebsd.org>, src-committers@freebsd.org,  dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org,  Jitendra Bhati <bhatijitendra2022@gmail.com>
Subject:   Re: git: 4bd01d6ae016 - main - fts: refactor to use fd-relative operations internally
Message-ID:  <CAOtMX2i9NxYuu=LZwLLP7NErLf4i5A7K=wLC%2B-GywchbwUZacw@mail.gmail.com>
In-Reply-To: <CAOtMX2g_U_mspHXdf3HL%2BFr-kh6XSbxR6JSTmVQ9OHDTqfckYw@mail.gmail.com>
References:  <6a70e844.251cb.6995429f@gitrepo.freebsd.org> <anI2QoB7hj7CSMRq@nuc> <CAOtMX2g_U_mspHXdf3HL%2BFr-kh6XSbxR6JSTmVQ9OHDTqfckYw@mail.gmail.com>

index | next in thread | previous in thread | raw e-mail

Try this patch.  It works for me.  I don't have an ATF regression test
to go with it, though:

diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c
index 204340e4b87f..3dd9b6432a2c 100644
--- a/lib/libc/gen/fts.c
+++ b/lib/libc/gen/fts.c
@@ -489,8 +489,7 @@ fts_read(FTS *sp)
                 * FTS_STOP or the fts_info field of the node.
                 */
                if (sp->fts_child != NULL) {
-                       if (fts_safe_changedir(sp, p,
-                           p->fts_dirfd, p->fts_name)) {
+                       if (fts_safe_changedir(sp, p, -1, p->fts_name)) {
                                p->fts_errno = errno;
                                p->fts_flags |= FTS_DONTCHDIR;
                                for (p = sp->fts_child; p != NULL;


On Tue, Aug 4, 2026 at 1:00 PM Alan Somers <asomers@freebsd.org> wrote:
>
> On Tue, Aug 4, 2026 at 12:58 PM Mark Johnston <markj@freebsd.org> wrote:
> >
> > On Mon, Aug 03, 2026 at 07:13:08PM +0000, Alan Somers wrote:
> > > The branch main has been updated by asomers:
> > >
> > > URL: https://cgit.FreeBSD.org/src/commit/?id=4bd01d6ae01632501b63438b8d9a401db9744a78
> > >
> > > commit 4bd01d6ae01632501b63438b8d9a401db9744a78
> > > Author:     Jitendra Bhati <bhatijitendra2022@gmail.com>
> > > AuthorDate: 2026-06-12 17:07:55 +0000
> > > Commit:     Alan Somers <asomers@FreeBSD.org>
> > > CommitDate: 2026-08-03 19:12:28 +0000
> > >
> > >     fts: refactor to use fd-relative operations internally
> > >
> > >     Replace all _open() calls with _openat() in __fts_open(), fts_read(),
> > >     and fts_children().  Replace statfs() with _fstatfs().
> > >
> > >     Add fts_dirfd to struct _ftsent, set to the file descriptor of the
> > >     parent directory. Callers can use openat(ent->fts_dirfd, ent->fts_name,
> > >     ...) to access files safely without relying on fts_accpath, which
> > >     enables programs in capability mode to open the files described by
> > >     _ftsent.
> > >
> > >     This is a preparatory change for fts_openat() which will allow callers
> > >     to provide a pre-opened directory fd, enabling fts(3) traversal inside
> > >     Capsicum capability mode.
> > >
> > >     Mirror all fts_open() changes to fts_open_b().
> > >
> > >     As a result of expanding _ftsend, publish new ELF symbol versions for
> > >     fts_openat and related functions.
> > >
> > >     Sponsored by:   Google LLC (GSoC 2026)
> > >     Reviewed by:    asomers
> > >     Pull Request:   https://github.com/freebsd/freebsd-src/pull/2303
> >
> > Quite a few regression tests seem to be failing after this commit, e.g.,
> > some of the makefs tests: https://ci.freebsd.org/job/FreeBSD-main-amd64-test/29201/
>
> I'm testing a fix now.  I should have something ready for you soon.


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2i9NxYuu=LZwLLP7NErLf4i5A7K=wLC%2B-GywchbwUZacw>