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>
