FreeBSD/src 3b0a51csys/kern imgact_elf.c

ptrace: Propagate errors from set_fpregs()

(cherry picked from commit 1932bd20ed53f2e695a576cffd183937ed25de3f)
DeltaFile
+4-4sys/kern/imgact_elf.c
+4-41 files

FreeBSD/src 2f9a488sys/amd64/amd64 exec_machdep.c

amd64: do not allow to set reserved bits in MXCSR for ptrace(PT_SETFPREGS)

(cherry picked from commit cef05c5a62ba63eda222eed083972bfaa1449ac2)
DeltaFile
+12-5sys/amd64/amd64/exec_machdep.c
+12-51 files

FreeBSD/src 838878fsys/kern kern_prot.c

getpgrp(2), getsid(2): allow to call on zombies

(cherry picked from commit 8f320c2bc473a775ea9a55d17fa61f729e593867)
DeltaFile
+8-4sys/kern/kern_prot.c
+8-41 files

FreeBSD/src 5adc7b1sys/kern vfs_subr.c, sys/sys mount.h

vfs_busy(): add MBF_PCATCH flag to allow interrupting the sleep

(cherry picked from commit fb4d7bd4b7676963f9f37ff47f315f8c3652538b)
DeltaFile
+16-1sys/kern/vfs_subr.c
+2-1sys/sys/mount.h
+18-22 files

FreeBSD/src abe9c47sys/kern vfs_syscalls.c

statfs(2): allow to interrupt busying

(cherry picked from commit b72f9bfc4513e3e286fb3fc2d07ebdd94ed7ac57)
DeltaFile
+1-1sys/kern/vfs_syscalls.c
+1-11 files

FreeBSD/src 5bdb00blib/libsys stat.2

stat.2: enhance the description of st_blocks

(cherry picked from commit 4c58eef12d30ec699c86d9ab8939253adbf35e79)
DeltaFile
+11-1lib/libsys/stat.2
+11-11 files

FreeBSD/src 8b62109sys/kern imgact_elf.c

ptrace: Propagate errors from set_fpregs()

(cherry picked from commit 1932bd20ed53f2e695a576cffd183937ed25de3f)
DeltaFile
+4-4sys/kern/imgact_elf.c
+4-41 files

FreeBSD/src aea04a8sys/amd64/amd64 exec_machdep.c

amd64: do not allow to set reserved bits in MXCSR for ptrace(PT_SETFPREGS)

(cherry picked from commit cef05c5a62ba63eda222eed083972bfaa1449ac2)
DeltaFile
+12-5sys/amd64/amd64/exec_machdep.c
+12-51 files

FreeBSD/src 30ccf2fsys/dev/igc if_igc.c

igc: defer sysctl-driven reinit to the admin task

igc_sysctl_eee() and igc_sysctl_dmac() called igc_if_init() directly.

Request the reset through iflib instead, and skipping while the interface
is down; the new value is picked up by the next init.

Unlike e1000, igc has no ASSERT_CTX_LOCK_HELD and no acquire_swflag
path, so the defect is silent here rather than an assertion failure.

While here also remove unnecessary igc_if_init uses:
iflib_if_init_locked() already runs after IFDI_RESUME and
IFDI_MEDIA_CHANGE, so the trailing *_if_init() only added an unstopped
IFDI_INIT that the following iflib_stop() undoes.

MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D58629
DeltaFile
+12-6sys/dev/igc/if_igc.c
+12-61 files

FreeBSD/src abdde8bsys/dev/e1000 if_em.c

e1000: defer sysctl-driven reinit to the admin task

Request the reset through iflib and let the admin task perform the
stop/init under the context lock, matching what the VF and SR-IOV paths
already do.

The assertion is compiled out without INVARIANTS, where the same write
instead resets the MAC and takes the ICH software flag while the queues
stay live and an ioctl or the admin task may be running.

While here also remove unnecessary em_if_init uses:
iflib_if_init_locked() already runs after IFDI_RESUME and
IFDI_MEDIA_CHANGE, so the trailing *_if_init() only added an unstopped
IFDI_INIT that the following iflib_stop() undoes.

MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D58628
DeltaFile
+12-6sys/dev/e1000/if_em.c
+12-61 files

FreeBSD/src bdf9027sys/fs/fuse fuse_vnops.c, tests/sys/fs/fusefs default_permissions.cc

fusefs: fix error handling when reading a directory's sticky bit

When trying to delete or rename a file, fuse_vnop_lookup must check
whether its parent directory's sticky bit is set.  Realistically, the
parent directory's attributes will almost always be cached.  But it's
possible that they won't be, and in that case we must send a new
FUSE_GETATTR request to the server.  If that request fails for some
reason, then we must fail the lookup.  Prior to this change fusefs would
ignore failure of that request.

Reported by:    Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li,
                and Ke Xu of Tsinghua University
Reviewed by:    markj
Differential Revision: https://reviews.freebsd.org/D57588

(cherry picked from commit b4af6a4cccc3b4b0ea461463196c258eb92ad2e5)
DeltaFile
+53-0tests/sys/fs/fusefs/default_permissions.cc
+6-4sys/fs/fuse/fuse_vnops.c
+59-42 files

FreeBSD/src c77cb02sys/fs/fuse fuse_vnops.c

fusefs: only search for FREAD fufh in readdir

The extra search for an FEXEC fufh shall be removed, since readdir
is only supposed to be called on a directory opened with FREAD.  The
sole exception is NFS, which will call VOP_READDIR with directories that
aren't open at all.  fuse already has special code to handle that.

Also remove the fuse_filehandle_get_dir() function, since it's not
used anywhere else.

Signed-off-by:  CismonX <admin at cismon.net>
Reviewed by:    asomers
Pull Request:   https://github.com/freebsd/freebsd-src/pull/1729

(cherry picked from commit 4179f1d9deed83977f159c8afea204293ef4c7d7)
DeltaFile
+1-11sys/fs/fuse/fuse_vnops.c
+1-111 files

FreeBSD/src 66c61a6sys/kern uipc_usrreq.c, sys/sys ucred.h

Fix LOCAL_PEERCRED in 32-bit compat mode

Previously the cr_pid field would be incorrectly copied to userland, due
to a size mismatch between the structure as defined in 32-bit vs 64-bit
builds.  Fix it by converting the structure before copying it to
userland.

PR:             294833
Sponsored by:   ConnectWise
Reviewed by:    emaste
Differential Revision: https://reviews.freebsd.org/D56675

(cherry picked from commit 1d24638d3e8875e4b99a4b5e39f4241e37221b3d)

linuxulator: fix SO_PEERCRED emulation after 1d24638d3e8

For Linux binaries, sopt->sopt_td may be null.  And there's also no
need to check it, since struct l_ucred has the same layout on 32-bit
systems as on 64-bit ones.

    [8 lines not shown]
DeltaFile
+21-2sys/kern/uipc_usrreq.c
+11-0sys/sys/ucred.h
+32-22 files

FreeBSD/src c3be3a7sbin/ping/tests test_ping.py

ping: fix listing test cases when scapy is not installed

The ATF-python test program was attempting to list test cases that
require scapy.  But it attempted to import the scapy module before the
test cases had been listed, resulting in an ImportError that kyua
interpreted as a test program crash.

Fix this behavior by handling that ImportError well enough to list test
cases, but not run them.  If scapy isn't present, Kyua will refuse to
run the test cases.  But it needs to be able to list them in order to
know to skip them.

Sponsored by:           ConnectWise
Reviewed by:            maxim
Differential Revision:  https://reviews.freebsd.org/D56765

(cherry picked from commit 3e845b1090565912375c5578cf0399d27b7fa70c)
DeltaFile
+25-1sbin/ping/tests/test_ping.py
+25-11 files

FreeBSD/src a4ebad0sys/fs/fuse fuse_node.c fuse_vnops.c

fusefs: better handling for low-memory conditions

Under conditions of low memory, getblk can fail.  fusefs was not
handling those failures very systematically.  It was always using
PCATCH, which appears to have been originally copy/pasted from the NFS
client code, but isn't always appropriate:

* During fuse_vnode_setsize_immediate, which can be called from many
  different VOPs and from the vn_delayed_setsize mechanism, remove
  PCATCH.  Some of these callers cannot tolerate allocate failure.

* In fuse_inval_buf_range, don't assume that getblk will always succeed.

* When calling fuse_inval_buf_range from VOP_ALLOCATE,
  VOP_COPY_FILE_RANGE, or VOP_WRITE (with IO_DIRECT), return EINTR if
  the allocation fails.

* When calling fuse_inval_buf_range from VOP_DEALLOCATE, remove PCATCH.
  This VOP must not fail with EINTR.

    [8 lines not shown]
DeltaFile
+17-7sys/fs/fuse/fuse_vnops.c
+1-5sys/fs/fuse/fuse_node.c
+18-122 files

FreeBSD/src 3943f7btests/sys/cam/ctl Makefile all-supported-opcodes.txt

CTL: add ATF tests for REPORT SUPPORTED OPCODES

This includes a regression test for CVE-2024-42416

Sponsored by:   ConnectWise
Reviewed by:    emaste
Differential Revision: https://reviews.freebsd.org/D46613

(cherry picked from commit 6dd86310e54d3f2dd9f688670913b9176176246c)
DeltaFile
+241-0tests/sys/cam/ctl/opcodes.sh
+39-0tests/sys/cam/ctl/all-supported-opcodes.txt
+2-0tests/sys/cam/ctl/Makefile
+282-03 files

FreeBSD/src 8fa2c02tests/sys/aio aio_test.c

aio(4) tests: do not rely on (int *)-1 being invalid address

Explicitly mmap guard and use it as the invalid address instead.

(cherry picked from commit dc9a8d300ba5c4c319589d78231e9d0e76576cbf)
DeltaFile
+6-1tests/sys/aio/aio_test.c
+6-11 files

FreeBSD/src 8c15c14usr.sbin/boot0cfg boot0cfg.8 boot0cfg.c

boot0cfg: Also allow a file as a trailing argument

Modify the disk check to allow arbitrary files as the trailing argument
instead of requiring a live GEOM disk provider.

This enables modifying a boot0 binary file in-place before flashing it
to a disk via gpart bootcode, or using it directly as an argument to
mkimg's partition specification, as these tools cannot directly adjust
the parameters of the boot0 boot manager.

Reviewed by:    imp, jhb
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D57310

(cherry picked from commit 4007d914e7973bca8ac488ab50aca56964eed90f)
DeltaFile
+34-6usr.sbin/boot0cfg/boot0cfg.c
+26-6usr.sbin/boot0cfg/boot0cfg.8
+60-122 files

FreeBSD/src 15a0a7dusr.sbin/boot0cfg boot0cfg.8 boot0cfg.c

boot0cfg: Also allow a file as a trailing argument

Modify the disk check to allow arbitrary files as the trailing argument
instead of requiring a live GEOM disk provider.

This enables modifying a boot0 binary file in-place before flashing it
to a disk via gpart bootcode, or using it directly as an argument to
mkimg's partition specification, as these tools cannot directly adjust
the parameters of the boot0 boot manager.

Reviewed by:    imp, jhb
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D57310

(cherry picked from commit 4007d914e7973bca8ac488ab50aca56964eed90f)
DeltaFile
+34-6usr.sbin/boot0cfg/boot0cfg.c
+26-6usr.sbin/boot0cfg/boot0cfg.8
+60-122 files

FreeBSD/src b95a859sys/fs/autofs autofs_vnops.c

autofs_lookup(): busy the mount point around autofs_trigger()

Since autofs_lookup() calls into autofs_trigger_vn() to perform
automounting, and autofs_trigger_vn() unlocks the vnode, it is possible
for the unmount to start meantime.  Then autofs_trigger() accesses freed
memory.

At this point, busy can be only done unblocking, and the transient
failure must abort the trigger operation.  This would cause spurious
automounter errors, but at least should prevent accesses to the freed
memory.

PR:     294361
Reviewed by:    markj, rew
Tested by:      rew
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58626
DeltaFile
+11-4sys/fs/autofs/autofs_vnops.c
+11-41 files

FreeBSD/src ac134a4sys/dev/ixl ixl_pf_iov.c

ixl: enforce the assigned VF MAC address

When allow-set-mac is disabled, the MAC filter validation condition
rejects the assigned VF unicast address while allowing any different
unicast address. The equality test was accidentally inverted when this
code moved to the boolean address helper.

Accept multicast and the assigned unicast address, and reject other
unicast addresses as intended.

Fixes:          7d4dceec1030 ("ixl(4): Fix VLAN HW filtering")

(cherry picked from commit d2309d9d6dc6d5a9141314652d6c96ab46a9a62c)
DeltaFile
+1-2sys/dev/ixl/ixl_pf_iov.c
+1-21 files

FreeBSD/src c6fb3adsys/dev/ixl ixl_pf_iov.c

ixl: enforce the assigned VF MAC address

When allow-set-mac is disabled, the MAC filter validation condition
rejects the assigned VF unicast address while allowing any different
unicast address. The equality test was accidentally inverted when this
code moved to the boolean address helper.

Accept multicast and the assigned unicast address, and reject other
unicast addresses as intended.

Fixes:          7d4dceec1030 ("ixl(4): Fix VLAN HW filtering")

(cherry picked from commit d2309d9d6dc6d5a9141314652d6c96ab46a9a62c)
DeltaFile
+1-2sys/dev/ixl/ixl_pf_iov.c
+1-21 files

FreeBSD/src 7a78914contrib/unbound config.h.in configure, contrib/unbound/doc Changelog

unbound: Update to 1.26.0

Release notes at
        https://community.nlnetlabs.nl/t/unbound-1-26-0-released

Merge commit '84ffc29dc8ddb0c946db5cb3b3c1310bec6a9e6c'
DeltaFile
+3,512-3,494contrib/unbound/util/configlexer.c
+2,874-1,942contrib/unbound/configure
+2,148-2,099contrib/unbound/util/configparser.c
+577-0contrib/unbound/doc/Changelog
+223-181lib/libunbound/config.h
+220-178contrib/unbound/config.h.in
+9,554-7,894108 files not shown
+12,570-8,977114 files

FreeBSD/src 65349afsys/net iflib.c

iflib: clear the deferred TX descriptor state when a queue is stopped

Stopping an interface frees the queued mbufs and zeroes a transmit
queue's descriptor accounting, but the three counters that track
descriptors deferred to a later doorbell write or report-status
request are not cleared there: they only reach zero when the code
that acts on them runs.  After a reset they therefore describe
descriptors that no longer exist, until enough new traffic flushes
them.

The consequences are small - one doorbell written from a stale
count, and a report-status request on the first packet after the
reset - but the state is simply wrong, and the transmit-hang check
in iflib_timer() reads one of them.

MFC after:      1 week
Assisted-by:    Claude Code (Opus 5)
DeltaFile
+2-0sys/net/iflib.c
+2-01 files

FreeBSD/src 5da9bc8sys/net iflib.c

iflib: remove the unused TX queue state machine

The previous commit stopped using ift_qstatus and the IFLIB_QUEUE_*
states for the TX watchdog decision, leaving only dead stores.
Remove the field, the states, and all assignments.  The byte the
field frees stays behind as explicit padding.  No functional change.

Reviewed by:    gallatin, markj
MFC after:      1 month
Differential Revision:  https://reviews.freebsd.org/D58282
Assisted-by:    Claude Code (Fable 5, Opus 5)
DeltaFile
+1-20sys/net/iflib.c
+1-201 files

FreeBSD/src 69c3e0dshare/man/man4 iflib.4, sys/net iflib.c

iflib: restore TX watchdog functionality

Since f6afed726b00 the TX-hang check in iflib_timer() has required a
queue state other than IFLIB_QUEUE_IDLE, but nothing ever sets
IFLIB_QUEUE_WORKING, so IFLIB_QUEUE_HUNG has been unreachable ever
since: stalled TX queues are not detected, not reported, and not
reset - the TX watchdog of every iflib(4) driver has been dead code.

Instead of resurrecting the queue-state machine, detect the hang
directly.  A transmit queue is frozen while it holds descriptors the
hardware has not reported as completed and none were reclaimed over a
timer period.  Being frozen is not a fault: the hardware may defer
marking descriptors as completed indefinitely.  The check therefore
arms only when a frozen queue also takes on new work, while the link
is up, no pause frames were received and no doorbell is pending; and
it acts only after the queue has stayed frozen for
net.iflib.tx_watchdog_periods consecutive periods.  It then asks the
hardware through the driver's read-only credits peek
(isc_txd_credits_update with clear=false, the same call the mp_ring

    [46 lines not shown]
DeltaFile
+107-26sys/net/iflib.c
+10-1share/man/man4/iflib.4
+117-272 files

FreeBSD/src 2d21dbasys/fs/p9fs p9fs_vnops.c p9fs_vfsops.c

fix p9fs_vget_common() panics

This addresses a race when two vnodes attempt to call vfs_hash_insert(),
but only one succeeds. Also, in case of an error from
p9fs_reload_stats_dotl(), it marks the vnode for deletion.

Reviewed by:    kib
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58632
DeltaFile
+15-41sys/fs/p9fs/p9fs_vfsops.c
+0-3sys/fs/p9fs/p9fs_vnops.c
+15-442 files

FreeBSD/src 8f20299sys/fs/nfsclient nfs_clrpcops.c

nfs_commonkrpc.c: Get rid of NFSv4.0 delegation cruft

Delegations in NFSv4.0 never worked well and, since
the NFSv4.0 protocol is now deprecated, use of delegations
for NFSv4.0 is disabled as far as the client can do so.

It turns out that some Illumos NFSv4.0 server issues
delegations anyhow (even when the callback path is
specified as 0.0.0.0) and this can cause use after free
problems.

This patch deleted some cruft that did an nfsrpc_openrpc()
call recursively when an NFSv4.0 server failed to issue
a delegation when it had previously done so.
This code was only meant to be an optimization and
would have been rarely exercised.  Since this recursive
call of nfsrpc_openrpc() is in some of the backtraces
in the bugzilla PR, getting rid of the cruft makes sense.


    [5 lines not shown]
DeltaFile
+0-27sys/fs/nfsclient/nfs_clrpcops.c
+0-271 files

FreeBSD/src 82c013flib/libc/stdbit stdc_first_leading_zero.3, lib/libc/stdlib memalignment.3

manuals: Fix more Fx and nearby mechanical typos

Fix compiler warnings related to the Fx macro, as well as all other
mechanical typos that were visible within one screenful of them. These
cause rendering glitches on various toolchains with various of the five
and a half decades of rich output formats and tooling manpages scale to.

The *x macro set specifies operating systems. These macros take the rest
of the line as an argument. Sometimes, a space was not used to separate
the argument of Fx and the trailing period. Others had other parts of
the sentence supplied as an argument to Fx.

While here, fix the other mechanical typos visible on those specific
screenfulls. Correct section typo AUTHOR to AUTHORS, markup utilities
with Sy, and apply line break after the end of a sentence.

PR:             297248
MFC after:      3 days
Reported by:    wosch (are you sure that's all of the broken Fx'es?)

    [5 lines not shown]
DeltaFile
+11-5share/man/man5/pf.conf.5
+2-2lib/libc/stdlib/memalignment.3
+2-1sbin/route/route.8
+1-1lib/libc/stdbit/stdc_first_leading_zero.3
+16-94 files

FreeBSD/src 35d56f2sys/arm64/arm64 trap.c

arm64: Use the fault handler when one is provided

In align_abort() and tag_check_abort(), if we got a fault while in kernel,
do not panic if a fault handler has been provided. We may get such a fault
when trying to read or write userland data, it can at least happen with
_umtx_op() if an unaligned pointer is provided. Instead, just let the
fault handler deal with it.

MFC After: 1 week
Approved by: andrew
Differential Revision: https://reviews.freebsd.org/D58426

(cherry picked from commit c6f5d8fb269fd67a8206420b4e7d67a93bc80733)
Signed-off-by: Olivier Houchard <cognet at FreeBSD.org>
(cherry picked from commit 60dd46db19f473af7aa505c0d8dcf9bb69847019)
Signed-off-by: Olivier Houchard <cognet at FreeBSD.org>
DeltaFile
+11-0sys/arm64/arm64/trap.c
+11-01 files