FreeBSD/src 5d169b5usr.sbin/bsnmpd/tools/libbsnmptools bsnmptools.c

bsnmpget: initialise the suboption value in getsubopt1()

Otherwise, "bsnmpget -o verbose -I cut" crashes.

Reported by:    clang static analyzer
MFC after:      2 weeks
DeltaFile
+1-0usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c
+1-01 files

FreeBSD/src 74cab6elib/libbsdconf bsdconf.h bsdconf.3, usr.sbin/sysconf sysconf_scan.c

libbsdconf: parse from a bounded in-memory buffer

Copy the descriptor into a buffer of at most 64 MiB (raise it with
BSDCONF_MAX_BYTES) and tokenize with bsdconf_scan(), the walker
bsdconf_put() already uses.  Input above the cap fails with EFBIG.
Bump libbsdconf to 1.2.0 and sysconf(8) to 2.0.

Suggested by:   fuz
Reviewed by:    fuz
Differential Revision:  https://reviews.freebsd.org/D59751
DeltaFile
+39-420lib/libbsdconf/bsdconf.c
+133-0lib/libbsdconf/bsdconf_stmt.c
+44-18lib/libbsdconf/bsdconf.3
+23-0usr.sbin/sysconf/tests/sysconf_test.sh
+0-16usr.sbin/sysconf/sysconf_scan.c
+9-3lib/libbsdconf/bsdconf.h
+248-4576 files not shown
+267-46312 files

FreeBSD/src 7b7ef79share/misc bsd-family-tree

bsd-family-tree: add NetBSD 10.2
DeltaFile
+23-20share/misc/bsd-family-tree
+23-201 files

FreeBSD/src 296e3fdusr.sbin/bsnmpd/tools/bsnmptools bsnmpget.c, usr.sbin/bsnmpd/tools/libbsnmptools bsnmptools.c

bsnmp: validate the lower bound of error_index in responses

Check if the response's error_index is within a sane interval.
Otherwise, a rogue peer could crash us.

PR:             298222
Reported by:    Robert Morris
Reviewed by:    markj
Discussed with: secteam (markj)
MFC after:      2 weeks
Analyzed with:  Claude Code Opus 5
DeltaFile
+6-2usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c
+2-1usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c
+8-32 files

FreeBSD/src b94772dsys/dev/clk/spacemit k1_clk.c k1_apmu.c

clk: Fix a few typos in the spacemit CCU driver

Fixes:  dcb10e3add17
Reported by:    Bruno Banelli <bruno.banelli at sartura.hr> (p_idx typo)
DeltaFile
+3-3sys/dev/clk/spacemit/k1_apmu.c
+2-2sys/dev/clk/spacemit/k1_clk.c
+5-52 files

FreeBSD/src 3d03013sys/net/route fib_algo.c

route/fib_algo: Respect immediate_sync in fd_ref_nhop

Now fd_ref_nhop() returns zero for cross family routes,
Do not schedule nhop references and try to rebuild it immediately
for connected and static routes.

PR:     298733
Fixes:  633438224304 ("route/fib_algo: Fix nexthop index ...")
DeltaFile
+4-2sys/net/route/fib_algo.c
+4-21 files

FreeBSD/src 50eae68sys/net/route fib_algo.c

route/fib_algo: Remove redundant zeroing of fd_af

fd is allocated with M_ZERO and fd_num_af never decreases.
Therefore, no need for zeroing nhaf_count and nhaf_base here.

Fixes:  633438224304 ("route/fib_algo: Fix nexthop index ...")
DeltaFile
+0-2sys/net/route/fib_algo.c
+0-21 files

FreeBSD/src ab636e4usr.sbin/jail config.c

jail(8): Preserve const qualifier on strchr(3) results

Reviewed by:    fuz, dteske
Approved by:    fuz (mentor), dteske (mentor)
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59876
DeltaFile
+3-3usr.sbin/jail/config.c
+3-31 files

FreeBSD/src 26b3ff1sys/compat/linux linux.c

Ignore LINUX_POLLREMOVE

This matches upstream behaviour since Linux's demangle_poll()
silently discards POLLREMOVE from the requested events.

Reviewed by:    emaste
Sponsored by:   Sippy Software, Inc.
Differential Revision:  https://reviews.freebsd.org/D59914
MFC after:      1 week
PR:             297467
DeltaFile
+4-2sys/compat/linux/linux.c
+4-21 files

FreeBSD/src 0cb85c5share/man/man4 aq.4

aq.4: Remove experimental note

I added the text when this driver was merely an import of
https://github.com/Aquantia/aqtion-freebsd with patches from ports applied.
nprice@ resolved issues and added support for newer cards and the note is
no longer applicable.

Reviewed by:    adrian
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D59909
DeltaFile
+0-4share/man/man4/aq.4
+0-41 files

FreeBSD/src 32137c4sys/arm/allwinner a10_codec.c, sys/arm/broadcom/bcm2835 bcm2835_audio.c

sound: Retire the version constants

They exist only to fill in MODULE_DEPEND() and MODULE_VERSION(), and
every consumer passed the same value for all three, so the version
range never did anything. Use 1, like the rest of the tree does.

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Reviewed by:    kib, emaste
Differential Revision:  https://reviews.freebsd.org/D59873
DeltaFile
+0-6sys/dev/sound/pcm/sound.h
+1-1sys/dev/firewire/fwisound.c
+1-1sys/arm/freescale/vybrid/vf_sai.c
+1-1sys/arm/freescale/imx/imx6_ssi.c
+1-1sys/arm/broadcom/bcm2835/bcm2835_audio.c
+1-1sys/arm/allwinner/a10_codec.c
+5-1133 files not shown
+38-4439 files

FreeBSD/src 57d542clib/libc/tests/stdlib test-search.h bsearch_test.c

libc: Preserve const qualifier on bsearch(3) results in tests

Reviewed by:    dteske, fuz
Approved by:    dteske (mentor), fuz (mentor)
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59611

(cherry picked from commit 3caa8d2c58b2787e4c4c64d9ac1831dadd7b0b47)
DeltaFile
+1-1lib/libc/tests/stdlib/test-search.h
+1-1lib/libc/tests/stdlib/bsearch_test.c
+1-1lib/libc/tests/stdlib/bsearch_s_test.c
+1-1lib/libc/tests/stdlib/bsearch_b_test.c
+4-44 files

FreeBSD/src b169b80lib/libc/aarch64/string strpbrk.c, lib/libc/amd64/string strpbrk.c

libc: Parenthesise qualifier-preserving function definitions

Required to prevent function-like macros with the same name from
being expanded in the definitions once they become active in a
later C mode.  Without the parentheses, the macro would rewrite
the declarator, and the file would consequently fail to compile.
This style is already used for similar cases such as mempcpy().

Reviewed by:    fuz
Approved by:    fuz (mentor)
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59600

(cherry picked from commit c389738f21c09931cd88a84a357be514b5c60030)
DeltaFile
+3-3lib/libc/stdlib/bsearch.c
+1-1lib/libc/string/memrchr.c
+1-1lib/libc/string/memmem.c
+1-1lib/libc/string/memchr.c
+1-1lib/libc/amd64/string/strpbrk.c
+1-1lib/libc/aarch64/string/strpbrk.c
+8-812 files not shown
+20-2018 files

FreeBSD/src 91973f5lib/libc/stdlib bsearch.c bsearch.3, lib/libc/tests/stdlib test-search.h bsearch_b_test.c

libc: Implement bsearch_s(), document bsearch_b(), and add unit tests

- Implement bsearch_s() as per §K.3.6.3.2 in C23, first specified
  in C11.  It behaves identically to bsearch(), except the callback
  is called with a third argument, context, which is passed through
  from the caller, and it also performs runtime constraint checking
  on its arguments.
- Document bsearch_b(), bsearch_s(), and add history section
- Add rudimentary unit tests for bsearch(), bsearch_b(), and bsearch_s()

Reviewed by:    dteske, fuz
Approved by:    dteske (mentor), fuz (mentor)
MFC after:      1 month
Differential Revision:  https://reviews.freebsd.org/D58876

(cherry picked from commit d59c7ea2701fe7b73b32eef49a7c712ef38de5a0)
DeltaFile
+134-0lib/libc/tests/stdlib/bsearch_s_test.c
+103-5lib/libc/stdlib/bsearch.3
+92-0lib/libc/tests/stdlib/bsearch_test.c
+58-0lib/libc/tests/stdlib/bsearch_b_test.c
+51-0lib/libc/tests/stdlib/test-search.h
+38-0lib/libc/stdlib/bsearch.c
+476-55 files not shown
+503-611 files

FreeBSD/src 8b66c7b. MAINTAINERS, .github CODEOWNERS

MAINTAINERS: Add myself to routing subsystem

Add myself as the maintainer for routing subsystem
in the GitHub CODEOWNERS and MAINTAINERS files.
DeltaFile
+1-0MAINTAINERS
+1-0.github/CODEOWNERS
+2-02 files

FreeBSD/src f120213lib/libc/stdlib bsearch.3, lib/libc/string memchr.3 strchr.3

libc: Use C23 pseudo-types in qualifier-preserving man page synopses

Reviewed by:    fuz
Approved by:    fuz (mentor)
MFC after:      1 month
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2288

(cherry picked from commit f9dfe9b8deee0054949eda22f5c0aae8ba3d432d)
DeltaFile
+10-10lib/libc/string/wmemchr.3
+8-8lib/libc/string/strstr.3
+8-8lib/libc/string/string.3
+6-6lib/libc/string/strchr.3
+4-4lib/libc/string/memchr.3
+2-2lib/libc/stdlib/bsearch.3
+38-383 files not shown
+44-449 files

FreeBSD/src 4bdbd68include wchar.h string.h, lib/libc/string string.3 strstr.3

libc: Implement qualifier-preserving standard library functions

Several standard library functions are specified to return an unqualified
pointer while accepting a pointer to a potentially const-qualified object.
N3020 addresses this behaviour, discarding qualifiers due to incompatible
pointer types, by introducing qualifier-preserving macros for the affected
set of standard library functions.

Add `__qualsel()` helper to `<sys/cdefs.h>`, implemented using the generic
selection, and define qualifier-preserving macros for that set of functions
in `<string.h>`, `<wchar.h>`, and `<stdlib.h>`.

Macros are gated on `_STDC_VERSION__ >= 202311L && !__cplusplus`, therefore
there is no behavioural change for earlier C modes or C++ translation units.
The kernel is likewise unaffected, as it does not include userland headers.

As function-like macros, they are transparent except at a call site where
the address-of operator is applied, the macro is suppressed via `#undef`,
or the identifier appears in parenthesised form; all of which cause the

    [8 lines not shown]
DeltaFile
+46-10lib/libc/string/wmemchr.3
+28-0include/string.h
+17-4lib/libc/string/strstr.3
+21-0sys/sys/cdefs.h
+11-5lib/libc/string/string.3
+14-0include/wchar.h
+137-197 files not shown
+187-3313 files

FreeBSD/src 627c766sys/dev/ntb/test ntb_tool.c

ntb_tool: Bound memory window option strings

parse_mw_buf() copies option names from privileged sysctl input into
eight-byte stack buffers.  Unbounded %s conversions permit option tokens
longer than seven bytes to write past those buffers before the parser
validates them.

Limit each conversion to seven characters, leaving space for the
terminating NUL.

Signed-off-by: Yudi Yang <yudi.yang at rice.edu>

Fixes:          96f556f5044a ("NTB Tool: Test driver for NTB hardware drivers.")
Reviewed by:    markj
MFC after:      1 week

(cherry picked from commit 602d1b994a22949fff7e4a87cb6e54d6fbad13b6)
DeltaFile
+1-1sys/dev/ntb/test/ntb_tool.c
+1-11 files

FreeBSD/src ccaeaa8sys/amd64/amd64 pmap.c

amd64/pmap: Return la57 in amd nested page

AMD doesn't encode page depth in eptp. As a result, the page level is
decided by the host la57 value. Without this, it uses 4 level page and
therefore cause machine enable la57 have garbage page translation.

PR:             291768
Reviewed by:    kib
Tested by:      Antranig Vartanian <antranigv at freebsd.am>
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D57978

(cherry picked from commit ef26f64c11220ea303de16d088c585f9d2908b0f)
DeltaFile
+13-1sys/amd64/amd64/pmap.c
+13-11 files

FreeBSD/src cea39b9sys/kern vfs_bio.c

buf: Avoid calling bufdomain() on newly initialized bufs

bufinit() inserts newly initialized bufs into the QUEUE_EMPTY queue, at
which point they haven't yet been assigned a domain.  Thus, bufdomain()
returns &bdomain[-1], which trips the array-bounds sanitizer.

This is harmless since we don't use the result in that case, but let's
avoid the invalid access to begin with.  This is sufficient to let an
amd64 kernel boot to a login prompt with -fsanitize=array-bounds
configured.

Reported by:    Andrew Griffiths <andrew at calif.io>
Reviewed by:    rlibby, kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59381

(cherry picked from commit e1d903bbfaf91060c43209b35b78a9992fbffe5e)
DeltaFile
+4-4sys/kern/vfs_bio.c
+4-41 files

FreeBSD/src a4c71d0libexec/atf/atf-sh/tests Makefile

atf-sh: install kmod_test added as part of the 0.26 release

Fixes:  952231086100 ("contrib/atf: upgrade to 0.26")
DeltaFile
+1-0libexec/atf/atf-sh/tests/Makefile
+1-01 files

FreeBSD/src 2793e54sys/dev/sound/macio onyx.c tumbler.c, sys/dev/sound/pci neomagic-coeff.h solo.c

sound: Use uint8_t instead of legacy u_char

No functional change intended.

MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
DeltaFile
+30-30sys/dev/sound/macio/snapper.c
+22-22sys/dev/sound/macio/tumbler.c
+13-13sys/dev/sound/pci/solo.c
+13-13sys/dev/sound/macio/onyx.c
+10-10sys/dev/sound/pci/hda/hdaa.h
+1-1sys/dev/sound/pci/neomagic-coeff.h
+89-891 files not shown
+90-907 files

FreeBSD/src 1adbb3fsys/compat/linuxkpi/common/include/linux compiler.h

LinuxKPI: implement __UNIQUE_ID() macro

Requred by drm-kmod v6.12.103

Obtained from:  OpenBSD

Reviewed by:    bz, emaste
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59733

(cherry picked from commit 8b05d84be9e288d201e8631750ae180b07311ba7)
DeltaFile
+4-0sys/compat/linuxkpi/common/include/linux/compiler.h
+4-01 files

FreeBSD/src fbaa247sys/compat/linuxkpi/common/include/linux string.h

Implement vmemdup_{array}_user

This is what FreeBSD now does for memdup_user and memdup_array_user
(which is wrong for memdup, but correct for vmemdup).

The amdgpu DRM driver started this in Linux ~6.12.86+

Reviewed by:    wulf
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D57444

(cherry picked from commit 302c6d25da6907ec762ff8937fa86d380743b000)
DeltaFile
+26-0sys/compat/linuxkpi/common/include/linux/string.h
+26-01 files

FreeBSD/src 7710a16sys/compat/linuxkpi/common/include/linux file.h cleanup.h

linuxkpi: Define `DEFINE_CLASS()` and `CLASS()`

`DEFINE_CLASS()` is in fact named `LINUXKPI_DEFINE_CLASS()` because it
conflicts with `DEFINE_CLASS()` defined in <sys/kobj.h>.

This macro defines a type and a pair of constructor/destructor
functions.

They are to be used by `CLASS()`: this one declares a variable,
initialise it with the constructor and set the `__cleanup()` attribute
to call the destructor once the variable goes out of scope.

The DRM drivers generic code started to use `CLASS()` in Linux 6.13. It
requires the `fd` class to be defined in <linux/file.h>.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57583

(cherry picked from commit f2a2e02ae54b836d1e23648756a050406f65111e)
DeltaFile
+26-0sys/compat/linuxkpi/common/include/linux/cleanup.h
+2-0sys/compat/linuxkpi/common/include/linux/file.h
+28-02 files

FreeBSD/src 4befe50sys/compat/linuxkpi/common/include/linux file.h

linuxkpi: Add 'fd_empty()`

The DRM drivers generic code started to use it in Linux 6.13.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57582

(cherry picked from commit 50aa145171bc88edde8cf3b7eb13dbbf88a3f8a7)
DeltaFile
+6-0sys/compat/linuxkpi/common/include/linux/file.h
+6-01 files

FreeBSD/src b85fe12sys/compat/linuxkpi/common/include/linux pci_ids.h pci.h

LinuxKPI: Add PCI_EXP_TYPE_UPSTREAM and PCI_VENDOR_ID_AMD defines

Required by drm-kmod v6.12.105

Reviewed by:    bz, emaste
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59734

(cherry picked from commit 52d1a0c62be1b4bd8e78ee57c86288246d948046)
DeltaFile
+1-0sys/compat/linuxkpi/common/include/linux/pci_ids.h
+1-0sys/compat/linuxkpi/common/include/linux/pci.h
+2-02 files

FreeBSD/src 74d325fsys/amd64/amd64 mp_machdep.c machdep.c, sys/amd64/include md_var.h pcpu.h

amd64: cache MSR_MEMORY_CTL in pcpu

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+11-0sys/amd64/amd64/initcpu.c
+3-4sys/amd64/amd64/machdep.c
+2-1sys/amd64/include/pcpu.h
+2-0sys/amd64/amd64/mp_machdep.c
+1-0sys/amd64/include/md_var.h
+19-55 files

FreeBSD/src 51cea54sys/amd64/amd64 sys_machdep.c, sys/x86/include sysarch.h

amd64: add userspace control for disabling splitlocks

Thread can control it with sysarch(I386_SET_SPLITLOCK). The global
default is set with hw.splitlock_force.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+26-1sys/amd64/amd64/sys_machdep.c
+2-0sys/x86/include/sysarch.h
+28-12 files

FreeBSD/src 20c09e6sys/amd64/amd64 machdep.c

amd64: use WRMSRNS immediate form to update splitlock control, when available

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+34-4sys/amd64/amd64/machdep.c
+34-41 files