OpenBSD/src lEHxYHksys/netinet6 ip6_output.c ip6_var.h

   Remove IPv6 source routing from output path.

   Routing header type 0 has been deprecated by RFC 5095 and we do not
   support any other type.  While OpenBSD blocks routing header in pf
   and during the input path, IPv6 output still allowed the user to
   generate them.

   Remove the code to set IPV6_RTHDR with setsockopt(2) and return
   "Protocol not available" error instead.  Also delete the code in
   ip6_output() to insert the routing header.

   Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li, and Ke Xu from
   Tsinghua University using the GLM model from Z.ai.
   reported that a regular user could attach deprecated routing header.

   OK claudio@ florian@
VersionDeltaFile
1.305+5-105sys/netinet6/ip6_output.c
1.130+3-14sys/netinet6/ip6_var.h
1.130+2-2sys/netinet6/ip6_forward.c
+10-1213 files

OpenBSD/src XixhY9uusr.sbin/bgpd chash.c

   Use ffs and slots &= slots - 1 to walk over the slots in a way to only
   look at matches. Kills another branch in the hot path and reduces the
   loop form 7 to the number of hits (which is close to 1).

   On systems without native ffs instruction this can be a tiny bit slower
   but modern systems have native ffs and there the speedup can be noticable.
   Even systems without ffs benefit on lookup misses since the loop is skipped.

   Based on a diff from Rango (kombucha at mm.st)
   OK tb@
VersionDeltaFile
1.15+35-35usr.sbin/bgpd/chash.c
+35-351 files

OpenBSD/src stkeyyIsys/dev/pci if_iavf.c if_ice.c, sys/kern uipc_mbuf.c

   Allocate mbufs in high memory if only 64 bit DMA interfaces exist.

   Mbufs on amd64 were allocated below 4 GB so that devices not capable
   of 64 bit DMA can access the memory.  Interface drivers use
   BUS_DMA_64BIT to allow the DMA layer doing 64 bit transfers.  Now
   flag interfaces with IFXF_MBUF_64BIT that are capable of 64 bit DMA
   on all their mbuf rings.

   If only such interfaces exist in the system during amd64 boot,
   allocate mbufs and mbuf clusters also in high memory.  Other
   architectures may be limited to 32 bit memory anyway or use an
   IOMMU.  On riscv64 or arm64 busses may exists that support less
   than 64 bit, this will be handled later.

   Hotplug devices that do not support 64 bit DMA will use bounce
   buffering.  By changing the flags in device drivers we can force
   bounce buffering and find missing calls to bus_dmamap_sync().

   OK kettenis@ deraadt@
VersionDeltaFile
1.306+30-1sys/kern/uipc_mbuf.c
1.160+6-1sys/uvm/uvm_km.c
1.270+3-2sys/sys/mbuf.h
1.29+2-2sys/dev/pci/if_iavf.c
1.69+2-2sys/dev/pci/if_ice.c
1.32+2-2sys/dev/pci/if_igc.c
+45-1011 files not shown
+69-2817 files

OpenBSD/src DeoY3E1sbin/isakmpd udp_encap.c

   isakmpd: Do not leak transport in error paths of udp_encap_handle_message()

   This is simiar to what we do in udp_handle_message() in udp.c.

   ok markus
VersionDeltaFile
1.25+10-5sbin/isakmpd/udp_encap.c
+10-51 files

OpenBSD/src E6vMantsbin/isakmpd ipsec.c

   isakmpd: Enforce per-type ID payload size in ipsec_validate_id_information()

   ok markus@
VersionDeltaFile
1.159+11-1sbin/isakmpd/ipsec.c
+11-11 files

OpenBSD/src zBd0Bbxsbin/isakmpd ike_phase_1.c

   isakmpd: Bound check ID-payload memcmp()

   Make sure the ID supplied by the peer is the size anticipated from
   the configuration.  Only apply memcmp() if the size matches.
   Otherwise, reject the ID right away.

   ok markus@
VersionDeltaFile
1.80+4-2sbin/isakmpd/ike_phase_1.c
+4-21 files

OpenBSD/src BIy49xpsbin/isakmpd ike_phase_1.c policy.c

   isakmpd: Bound check decode_* in policy_callback() and attribute_unacceptable()

   Before decoding 16-bit or 32-bit TLV values, verify that the provided
   values have proper minimum size.

   ok markus@
VersionDeltaFile
1.79+7-1sbin/isakmpd/ike_phase_1.c
1.104+6-1sbin/isakmpd/policy.c
+13-22 files

OpenBSD/src CyFU6Hqsbin/isakmpd ipsec.c

   isakmpd: Bound check decode_16() in ipsec_decode_attribute()

   Before decoding a 16 bit TLV value verify that the provided value
   is at least 16 bit in size.

   The LIFE_DURATION attributes will already be validated individually,
   so just pass them on.

   ok markus@
VersionDeltaFile
1.158+11-1sbin/isakmpd/ipsec.c
+11-11 files

OpenBSD/src nedMwewlib/libc/string strstr.c

   Fix misleading comment in strstr(3)

   From upstream musl:
   https://git.musl-libc.org/cgit/musl/commit?id=c53e9b239418eb3e0e8be256abd0f6ad7608bbcf

   OK tb@
VersionDeltaFile
1.11+1-1lib/libc/string/strstr.c
+1-11 files

OpenBSD/src pQbFCfnlib/libc/string memmem.c strstr.c

   Avoid shift overflow in memmem(3) and strstr(3)

   Fix from upstream musl:
   https://git.musl-libc.org/cgit/musl/commit?id=593caa456309714402ca4cb77c3770f4c24da9da

   OK tb@
VersionDeltaFile
1.6+5-5lib/libc/string/memmem.c
1.10+5-5lib/libc/string/strstr.c
+10-102 files

OpenBSD/src FGmNRxysbin/isakmpd ipsec.c

   isakmpd: Bound check decode_16() in ipsec_is_attribute_incompatible()

   Before decoding a 16 bit TLV value verify that the provided value
   is at least 16 bit in size.

   ok markus@
VersionDeltaFile
1.157+6-2sbin/isakmpd/ipsec.c
+6-21 files

OpenBSD/src 0k7I4Ztusr.sbin/bgpd chash.c Makefile

   Implement ch_meta_locate() using some bit tricks to avoid branches and loops.

   ch_haszero() first sets the high bit for every byte in lookup that is 0
   and then uses a multiplaction plus shift to compact this bits into the
   output.

   Also use a multiplication with 0x0101010101010101 instead of the memset().
   Modern compilers produce the same code but older ones produce a bit simpler
   code this way.

   Based on a diff from Rango (kombucha at mm.st)
   OK tb@
VersionDeltaFile
1.14+29-12usr.sbin/bgpd/chash.c
1.47+2-1usr.sbin/bgpd/Makefile
+31-132 files

OpenBSD/src VemJKDesbin/isakmpd exchange.c

   isakmpd: Only call sa_isakmp_upgrade() when ISAKMP SAs actually exist

   Informational and transactional exchanges do not have ISAKMP SAs.
   Therefore only upgrade ISAKMP SAs when these actually exist.

   ok markus@
VersionDeltaFile
1.144+3-2sbin/isakmpd/exchange.c
+3-21 files

OpenBSD/src DyOJ9yGsys/arch/arm64/arm64 codepatch.c cpu.c, sys/arch/arm64/conf kern.ldscript

   Address CVE-2025-10263.  This requires doing the TLB invalidation twice.
   However, this has a considerable cost on some CPU cores (such as Apple's
   M1/M2 and Qualcomm Snapdragon X) that aren't vulnerable.  So bring over
   the code patching infrastructure from amd64 and use it to NOP out the
   additional TLB invalidation on CPUs that aren't vulnerable.

   This also addresses errata on some older ARM CPU cores (that are
   classified as unlikely to happen) on some cores that aren't vulnerable to
   this particular CVE.

   ok jca@, deraadt@
VersionDeltaFile
1.1+119-0sys/arch/arm64/arm64/codepatch.c
1.149+105-2sys/arch/arm64/arm64/cpu.c
1.1+72-0sys/arch/arm64/include/codepatch.h
1.9+18-1sys/arch/arm64/arm64/cpufunc_asm.S
1.11+12-2sys/arch/arm64/arm64/locore0.S
1.12+12-1sys/arch/arm64/conf/kern.ldscript
+338-63 files not shown
+354-99 files

OpenBSD/src c5TA0S2lib/libc/asr res_send_async.c gethostnamadr_async.c

   Check for errors returned by _asr_unpack_{header,query,rr}

   dname_expand() is the main parsing function for DNS labels. Its errors
   are propagated via unpack_dname() to _asr_unpack_query() and
   _asr_unpack_rr().

   Those two functions would also propagate the errors, but they were
   then ignored by the callers which would continue parsing invalid DNS
   data.

   _asr_unpack_header has the same issue but the call chain is shorter.

   input & OK deraadt
VersionDeltaFile
1.43+15-16lib/libc/asr/res_send_async.c
1.54+12-5lib/libc/asr/gethostnamadr_async.c
1.67+11-5lib/libc/asr/getaddrinfo_async.c
+38-263 files

OpenBSD/src 6SP5kzyusr.bin/tmux window.c tmux.1

   Fix an infinite loop in customize mode when a filter does not match, and
   tweak a tmux.1 example.
VersionDeltaFile
1.346+8-8usr.bin/tmux/window.c
1.1100+2-2usr.bin/tmux/tmux.1
1.22+2-1usr.bin/tmux/window-customize.c
+12-113 files

OpenBSD/src XGnZh8wdistrib/sets/lists/comp clang.arm64 clang.armv7

   Add clang-scan-deps
VersionDeltaFile
1.52+1-0distrib/sets/lists/comp/clang.arm64
1.50+1-0distrib/sets/lists/comp/clang.armv7
1.58+1-0distrib/sets/lists/comp/clang.i386
1.40+1-0distrib/sets/lists/comp/clang.loongson
1.37+1-0distrib/sets/lists/comp/clang.macppc
1.30+1-0distrib/sets/lists/comp/clang.powerpc64
+6-04 files not shown
+10-010 files

OpenBSD/src kLSxIP5gnu/usr.bin/clang Makefile, gnu/usr.bin/clang/clang-scan-deps Makefile

   Import clang-scan-deps

   Computes deps so that build systems may rebuild only what's needed after
   changing a C++20 module. Needed by a small (4) but growing number of
   ports and expected to be needed by a lot more in the future.  Working
   around the lack of it in base is especially awkward.

   ok tb@ sthen@
VersionDeltaFile
1.1+35-0gnu/usr.bin/clang/libclangTooling/Makefile
1.1+33-0gnu/usr.bin/clang/clang-scan-deps/Makefile
1.1+25-0gnu/usr.bin/clang/libclangDependencyScanning/Makefile
1.31+4-1gnu/usr.bin/clang/Makefile
+97-14 files

OpenBSD/src uCbtT8dusr.bin/tmux cmd-split-window.c layout.c

   Allow -p more than 100%, and account for borders when sizing new panes.
   From Dane Jensen.
VersionDeltaFile
1.136+31-27usr.bin/tmux/cmd-split-window.c
1.78+18-8usr.bin/tmux/layout.c
1.81+13-1usr.bin/tmux/options.c
1.345+10-1usr.bin/tmux/window.c
1.1364+5-2usr.bin/tmux/tmux.h
1.61+3-3usr.bin/tmux/cmd-resize-pane.c
+80-421 files not shown
+83-457 files

OpenBSD/src 9xKBYCDusr.bin/tmux layout.c

   Do not leak error message, use it instead. From Dane Jensen.
VersionDeltaFile
1.77+8-6usr.bin/tmux/layout.c
+8-61 files

OpenBSD/src yvyNp1Pregress/sys/kern/sysvmsg msgtest.c

   Fix transfer size in regress/sys/kern/sysvmsg/msgtest.c

   According POSIX (see [1] and [2] EXAMPLES) the `msgsz' argument of
   msgsnd() and msgrcv() should *NOT* include the size of msg.mtype, it
   should be the size of msg.mtext only. Also msgrcv() return value does
   *NOT* include the size of msg.mtype, but only the size of msg.mtext.
   Our test expects the size of the whole msg.

   1. https://pubs.opengroup.org/onlinepubs/000095399/functions/msgsnd.html
   2. https://pubs.opengroup.org/onlinepubs/000095399/functions/msgrcv.html

   ok millert
VersionDeltaFile
1.9+13-11regress/sys/kern/sysvmsg/msgtest.c
+13-111 files

OpenBSD/src AbCUwqssys/kern sysv_msg.c

   Make msg_copyout() to check the remaining space within userland buffer.
   Otherwise, if the userland buffer size is smaller than the message size,
   we write data beyond its end.

   Use `xfer' for chunk size like msg_copyin() does.

   ok cludwig
VersionDeltaFile
1.44+12-9sys/kern/sysv_msg.c
+12-91 files

OpenBSD/src kesgepqusr.bin/tmux format.c tmux.1

   Extend match to do multiple terms.
VersionDeltaFile
1.386+32-4usr.bin/tmux/format.c
1.1099+4-3usr.bin/tmux/tmux.1
+36-72 files

OpenBSD/src sL8lMygregress/lib/libcrypto/x509 Makefile

   With x_crl.c r1.52 the x509_crl regress passes
VersionDeltaFile
1.27+1-3regress/lib/libcrypto/x509/Makefile
+1-31 files

OpenBSD/src ZMaBOnTlib/libcrypto/asn1 x_crl.c

   crl_cb(): fix EXFLAG_CRITICAL mishandling

   The EXFLAG_CRITICAL should be set on encountering a critical CRL
   extension unsupported by the library. The current loop does the
   opposite: it stops looking as soon as it finds the first critical
   extension the library supports...

   ok kenjiro
VersionDeltaFile
1.53+2-2lib/libcrypto/asn1/x_crl.c
+2-21 files

OpenBSD/src zqoC2Pcusr.bin/tsort tsort.c

   Fix heap buffer overread with embedded null bytes in input
VersionDeltaFile
1.39+4-3usr.bin/tsort/tsort.c
+4-31 files

OpenBSD/src rEjVb9Wregress/lib/libcrypto/x509 x509_crl.c Makefile

   libcrypto/x509 regress: x509_crl regress from Boring via OpenSSL #1775

   Currently expected to fail due to mishandling of unknown critical
   extensions in x_crl.c, to be fixed shortly.
VersionDeltaFile
1.1+364-0regress/lib/libcrypto/x509/x509_crl.c
1.26+4-2regress/lib/libcrypto/x509/Makefile
+368-22 files

OpenBSD/src otdbzWPusr.bin/tmux mode-tree.c tmux.1

   Add c key to clear filter.
VersionDeltaFile
1.86+16-1usr.bin/tmux/mode-tree.c
1.1098+6-2usr.bin/tmux/tmux.1
+22-32 files

OpenBSD/src cJnBI5csys/dev/pci/drm drm_linux.c

   fix vmap_pfn() by using ptoa() to get the physical address
VersionDeltaFile
1.142+2-2sys/dev/pci/drm/drm_linux.c
+2-21 files

OpenBSD/src xq6WM2Csys/dev/pci/drm/i915 i915_scatterlist.c

   don't increment scatterlist length twice

   this occurs as sg_dma_len() returns the length member of struct scatterlist
   where as on x86 linux it returns a dma_length member of the struct

   Problem reported by Ryan Fahy in FreeBSD drm-kmod PR 468.

   Avoids a 'Data modified on freelist' panic on boot when using discrete
   Intel cards (DG2).  DG2 has other issues, so remains disabled for now.
VersionDeltaFile
1.6+4-0sys/dev/pci/drm/i915/i915_scatterlist.c
+4-01 files