routing: fix rtentry use-after-free in multipath route append
add_route_flags() drops the RIB lock and passes the existing entry,
rt_orig, to add_route_flags_mpath(). If a concurrent delete removes
the prefix in that window, the retry re-inserts rt_orig, which is
then freed while still linked, crashing later in rn_match().
Pass the new rt instead, return ENOENT when the prefix is gone and
RTM_F_CREATE is not set, and fix the rnd_orig NULL check.
Approved by: pouria
Fixes: c24a8f19c5d5 ("routing: fix rib_add_route_px()")
Differential Revision: https://reviews.freebsd.org/D60353
tests/netinet6: fix ndp_del_gu_success flakiness
The test pinged an unanswered address and then deleted the resulting
INCOMPLETE neighbor entry.
The kernel frees that entry after about 3s, so on a loaded VM,
ndp -d could run too late and fail with ENOENT.
Configure 2001:db8::2 on epair0b so the ping gets a reply and the
entry becomes REACHABLE.
Approved by: pouria
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D60348
devel/redasm: prepare the port for modern versions of CMake
Synchronize cmake_minimum_required(VERSION 3.10) across all
components and switch to new CMP0048 policy.
graphics/spirv-tools: Update to 2026.4
This is identical to 2026.4.rc2 except the version number. So no
version bumps of dependent ports are necessary.
Changelog: https://github.com/KhronosGroup/SPIRV-Tools/blob/v2026.4/CHANGES
Reported by: GitHub (watch releases)
net/samba423: add LMDB selection options (LMDB0 / LMDB1)
This patch introduces a new radio option group (LMDBG1) allowing
users to select between LMDB 0.9 (databases/lmdb0) and LMDB 1.0
(databases/lmdb), following the pattern used in mail/postfix.
Summary of changes:
- Introduced LMDBG1 radio option group with LMDB0 and LMDB1 choices.
- Added LMDB0 to OPTIONS_DEFAULT to preserve existing default behavior.
- Updated _LMDB_DEPDENDS for AD_DC / DEVELOPER builds to depend on
databases/lmdb when LMDB1 is selected, defaulting to databases/lmdb0.
- Guarded FORTIFY_UNSAFE with .ifnmake portclippy to prevent portclippy
warnings.
Inspired by mail/postfix workaround of the problem with LMDB.
PR: 299147
Approved by: samba (kiwi)
www/pomerium: update to 0.33.4
While here:
- Set Pdeathsig on the envoy child process so that it is terminated
when pomerium exits, matching the behavior on Linux.
- Stop enabling reuse_port on FreeBSD: Envoy force-disables it for
TCP listeners on non-Linux platforms and logs a warning for each
listener.
graphics/embree3: try to fix the build against CMake 4.x
While here, add forgotten type annotation in the similar
commit made to `math/fastops' port earlier.
PR: 299180
Fixes: fa07c9073bc9
nfscl: Fix oddball cases for session slot release
We have identified some cases where silent slot loss can occur
when operations on NFS mounts are aborted. We experience this
when using NFSv4.2, but it likely also occurs with NFSv4.1.
A slot is acquired for compound operations by nfsv4_setsequence()
and freed by newnfs_request(). Any call path that abandons the
compound before reaching newnfs_request() loses the slot permanently.
We identified four call sites where this happens, one of
which where it actually does happen for us in a semi-reproducible
way, which allowed us to develop a candidate patch, attached.
The patch adds one function, nfsv4_freeunsentslot(), to
nfs_clcomsubs.c. It is called from each of the four call
sites: nfsrpc_writerpc(), nfsrpc_writeds(), and two in
nfsrpc_setextattr().
[11 lines not shown]
lib80211: fix build with eXpat 2.9.0
eXpat 2.9.0 deprecates XML_GetCurrentLineNumber() in favour of
XML_GetCurrentLineNumber64(). The new function behaves the same
as the old one but is not prone to 32 bit integer wrap-around.
sem test: avoid ETIMEDOUT races in the EINTR test cases
timedwait and clockwait_absolute_intr_remaining arm a 50ms SIGALRM and then
wait until an absolute deadline only 100ms in the future.
On a loaded VM the signal can be delivered more than 50ms late, so the wait
times out first.
Approved by: imp
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D60347
da: Update trim stats with the periph lock held
Separate the updating the stats for the completion from the biodone for
each one.
Sponsored by: Netflix
Reviewed by: ali_mashtizadeh.com
Differential Revision: https://reviews.freebsd.org/D60156
ada: Update trim stats for every bio
Separate the updating the stats for the completion from the biodone for
each one.
Sponsored by: Netflix
Reviewed by: ali_mashtizadeh.com
Differential Revision: https://reviews.freebsd.org/D60157
nda: Update trim stats with the periph lock held
Separate the updating the stats for the completion from the biodone for
each one.
Sponsored by: Netflix
Reviewed by: ali_mashtizadeh.com
Differential Revision: https://reviews.freebsd.org/D60155
cam: Rename cam_iosched_bio_complete to cam_iosched_bio_update_stats
The function updates scheduler statistics but does not complete the
bio. Rename it to avoid implying ownership of bio completion.
Sponsored by: Netflix
Reviewed by: ali_mashtizadeh.com
Differential Revision: https://reviews.freebsd.org/D60349