Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Jun 2026 02:03:40 +0200
From:      =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= <des@FreeBSD.org>
To:        Alan Somers <asomers@FreeBSD.org>
Cc:        src-committers@FreeBSD.org,  dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org,  Jitendra Bhati <bhatijitendra2022@gmail.com>
Subject:   Re: git: e03ed9daeb49 - main - fts: refactor to use fd-relative operations internally
Message-ID:  <864iispzxf.fsf@ltc.des.dev>
In-Reply-To: <6a3a9e2c.1d985.79db71af@gitrepo.freebsd.org> (Alan Somers's message of "Tue, 23 Jun 2026 14:54:36 %2B0000")
References:  <6a3a9e2c.1d985.79db71af@gitrepo.freebsd.org>

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

Alan Somers <asomers@FreeBSD.org> writes:
> commit e03ed9daeb49fffa1d16b8d00240c65e92650d01
> Author:     Jitendra Bhati <bhatijitendra2022@gmail.com>
> AuthorDate: 2026-06-12 17:07:55 +0000
> Commit:     Alan Somers <asomers@FreeBSD.org>
> CommitDate: 2026-06-23 14:53:56 +0000
>
>     fts: refactor to use fd-relative operations internally
>     
>     Replace all _open() calls with _openat() in __fts_open(), fts_read(),
>     and fts_children().
>     
>     Add fts_dirfd to FTSENT. Callers can use
>     openat(ent->fts_dirfd, ent->fts_name, ...) to access files
>     safely without relying on fts_accpath, which enables:
>     
>     1. Capsicum capability mode where path-based operations fail
>     2. Security-sensitive programs that avoid TOCTOU races
>     
>     Replace statfs(ent->fts_path) with _fstatfs(ent->fts_dirfd) in
>     fts_ufslinks() when fts_dirfd is valid, falling back to statfs() for
>     root-level entries where fts_dirfd is -1
>     
>     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.
>     
>     Sponsored by:   Google LLC (GSoC 2026)
>     Reviewed by:    asomers, jillest
>     MFC after:      2 weeks
>     Pull Request:   https://github.com/freebsd/freebsd-src/pull/2278

This needs to be reverted.  It changes struct _ftsent which is part of
the libc ABI.  You will have to fork FTS (again) and have one version
with fts_dirfd and fts_openat() and one without.

DES
-- 
Dag-Erling Smørgrav - des@FreeBSD.org


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?864iispzxf.fsf>