OpenBSD/src xMjylTQlibexec/login_chpass Makefile

   login_chpass: No longer need to install this setuid root

   When the YP code was removed login_chpass became wrapper that just
   execs login_lchpass.

   OK deraadt@
VersionDeltaFile
1.10+2-4libexec/login_chpass/Makefile
+2-41 files

OpenBSD/src g1NybjTsys/arch/arm64/stand/efiboot efiboot.c

   Terminate SMBIOS vendor/product matching at first match.

   ok jsg@, tobhe@, deraadt@
VersionDeltaFile
1.71+2-1sys/arch/arm64/stand/efiboot/efiboot.c
+2-11 files

OpenBSD/src VAcYhIJsys/arch/amd64/amd64 bus_dma.c autoconf.c, sys/arch/amd64/include bus.h

   Extend the SEV bounce buffer implementation to make it usable for bouncing
   memory that isn't DMA reachable.

   ok deraadt@
VersionDeltaFile
1.61+118-33sys/arch/amd64/amd64/bus_dma.c
1.60+3-1sys/arch/amd64/amd64/autoconf.c
1.38+3-1sys/arch/amd64/include/bus.h
+124-353 files

OpenBSD/src DNUrysLsys/dev/ic com.c

   Get rid of the COM_CONSOLE ifdef maze.  This was introduced for sparc
   which is no longer with us.

   ok jsg@
VersionDeltaFile
1.182+6-35sys/dev/ic/com.c
+6-351 files

OpenBSD/src yCcmTd3sys/arch/amd64/amd64 cpu.c, sys/arch/amd64/include specialreg.h

   floating point state leakage can be observed on AMD Zen/Zen+ (Zen 1)

   This was discovered by the Rootsec research group at the CISPA Helmholtz
   Center for Information Security.  Rootsec named the problem
   Floating Point Divider State Sampling (FP-DSS).

   Do AMD's suggested mitigation, setting a chicken bit in an MSR.

   https://www.amd.com/en/resources/product-security/bulletin/amd-sb-7053.html
   https://roots.ec/blog/fpdss/

   ok deraadt@ brynet@
VersionDeltaFile
1.205+12-1sys/arch/amd64/amd64/cpu.c
1.679+12-1sys/arch/i386/i386/machdep.c
1.86+3-1sys/arch/i386/include/specialreg.h
1.122+3-1sys/arch/amd64/include/specialreg.h
+30-44 files

OpenBSD/src ycP4DrEsbin/slaacd engine.c

   Prevent buffer overflow by checking the correct counter.

   An attacker on the same layer 2 network can send rogue router
   advertisements, potentially crashing slaacd.

   from Maurice Hieronymus (mhi AT mailbox.org), thanks!
   from florian@; OK deraadt

   this is errata/7.7/039_slaacd.patch.sig
VersionDeltaFile
1.99.4.2+2-2sbin/slaacd/engine.c
+2-21 files

OpenBSD/src Mkit1nBsbin/slaacd engine.c

   Prevent buffer overflow by checking the correct counter.

   An attacker on the same layer 2 network can send rogue router
   advertisements, potentially crashing slaacd.

   from Maurice Hieronymus (mhi AT mailbox.org), thanks!
   from florian@; OK deraadt

   this is errata/7.8/033_slaacd.patch.sig
VersionDeltaFile
1.99.2.2+2-2sbin/slaacd/engine.c
+2-21 files

OpenBSD/src iEb9ETLsys/arch/amd64/conf RAMDISK_CD, sys/arch/i386/conf RAMDISK_CD

   Attach puc in RAMDISK_CD on amd64 and i386

   Fixes breakage on my headless amd64. Untested on i386

   OK kettenis@
VersionDeltaFile
1.255+5-1sys/arch/i386/conf/RAMDISK_CD
1.214+4-1sys/arch/amd64/conf/RAMDISK_CD
+9-22 files

OpenBSD/src ULD48RXsys/arch/sparc64/sparc64 locore.s pmap.c

   The parking mutex uses data structures on the stack and expects CPUs to be
   able to modify that data for other CPUs.  Unfortunately on some sparc64
   systems (sun4u systems that don't use Fujitsu SPARC64 CPUs) use a trick
   where the interrupt stack is mapped using a fixed alias on each CPU.  This
   means a CPU can only access its own interrupt stack.  Fix this by using
   the "real" address of the interrupt stack.  We still need the fixed alias
   though to find our own "struct cpu_info" on these systems.  So on
   MULTIPROCESSOR kernel we need to use another locked TLB entry.

   tested by bluhm@, claudio@, tb@, jca@, dlg@
   ok dlg@, jca@
VersionDeltaFile
1.233+24-3sys/arch/sparc64/sparc64/locore.s
1.129+12-1sys/arch/sparc64/sparc64/pmap.c
+36-42 files

OpenBSD/src Q4R9ic1sys/dev/fdt dwpcie.c

   Tell the SpacemiT K1 controller to change the link speed such that we get
   the PCIe gen2 speeds that the controller supports.

   ok mlarkin@, jsing@
VersionDeltaFile
1.60+5-1sys/dev/fdt/dwpcie.c
+5-11 files

OpenBSD/src WrSY1q2distrib/riscv64/ramdisk Makefile, share/man/man8 release.8

   Copy SpacemiT K1 device trees onto the miniroot.  With this, installs
   should just work on the supported boards.  Make sure you install with a
   network connection such that fw_update can put the device trees into
   your new install as well.  Document that "make release" now needs the
   riscv64-spacemit-dtb firmware installed.

   ok deraadt@, jca@
VersionDeltaFile
1.101+12-4share/man/man8/release.8
1.9+3-1distrib/riscv64/ramdisk/Makefile
+15-52 files

OpenBSD/src mvh3sgosys/scsi st.c

   Don't let malicious or confused scsi tape devices cause reading or writing
   outside a mode sense/select buffer.

   Original diff from Stanislav Fort of aisle.com with additional paranoia for
   negative values.

   Tweaks and ok from kettenis@
VersionDeltaFile
1.192+7-2sys/scsi/st.c
+7-21 files

OpenBSD/src Hqh8miLsys/netinet tcp_input.c

   Revert last commit, rev. 1.446.

   The change introduced a regression where sockets get stuck in FIN_WAIT_2
   and LAST_ACK.

   Noticed by anton@ since regress/sys/net/pflow fails.
VersionDeltaFile
1.467+4-4sys/netinet/tcp_input.c
+4-41 files

OpenBSD/src SFwg841share/man/man4 ip.4

   document IP_RECVIF sockopt, from Matthew Luckie
VersionDeltaFile
1.45+31-2share/man/man4/ip.4
+31-21 files

OpenBSD/src AlHT2nVusr.sbin/vmd vionet.c virtio.h

   Fix vmd(8) vionet reset race leading to broken networking.

   A driver reset races with the device asynchronously notifying tx
   and rx threads. The current design finishes the reset after the
   threads pause and acknowledge the reset. This can clobber device
   state because a driver doesn't need to wait before reconfiguring
   the device. End result is device thinks it's in a blank slate while
   driver thinks device is configured and device refuses to pass packets
   thinking the driver isn't ready.

   This removes that async reset design and ack message from the
   threads. Reset occurs immediately while emulating the write to the
   register. A generation counter is used to signal to tx and rx
   threads that a reset occurred between they time they finished
   processing virtqueues and the time they grabbed the write lock to
   change interrupt state on the device so they can safely skip
   raising irq lines.

   Original bug reports by mbuhl@ and stsp@.

    [4 lines not shown]
VersionDeltaFile
1.30+55-64usr.sbin/vmd/vionet.c
1.63+2-1usr.sbin/vmd/virtio.h
1.147+1-2usr.sbin/vmd/vmd.h
+58-673 files

OpenBSD/src REP6Udhlibexec/ftpd ftpd.c

   Avoid potential undefined behavior on write error while sending data.
   From Dhiraj Mishra
   OK deraadt@ tb@
VersionDeltaFile
1.236+6-5libexec/ftpd/ftpd.c
+6-51 files

OpenBSD/src tGFYYzvsys/arch/riscv64/stand/efiboot efiboot.c conf.c

   Attempt to load the right device tree from the riscv64-specmit-dtb
   firmware package on SpacemiT K1 boards.  The only viable way to do this
   seems to be basing this on the "model" property of the root node of
   the device tree provided by the device.  This is still a bit of a guess
   since the Milk-V Jupiter advertises itself as "spacemit k1-x evb board"
   and the Banana Pi BPI-F3 seems to say it is a "spacemit k1-x deb1 board".

   ok jca@
VersionDeltaFile
1.14+44-2sys/arch/riscv64/stand/efiboot/efiboot.c
1.6+2-2sys/arch/riscv64/stand/efiboot/conf.c
+46-42 files

OpenBSD/src Ckmknd0sys/arch/i386/conf RAMDISK

   If you use the floppy, fw_update for some drivers will not work, you will
   have to figure out the names of the missing firmwares and request them
   manually.

   The pci strings in the kernel have become too large, and I'm being told I
   may not shorten them.
VersionDeltaFile
1.205+2-2sys/arch/i386/conf/RAMDISK
+2-21 files

OpenBSD/src 8tWMEywsys/arch/amd64/conf RAMDISK

   If you use the floppy, fw_update for some drivers will not work, you will
   have to figure out the names of the missing firmwares and request them
   manually.

   The pci strings in the kernel have become too large, and I'm being told I
   may not shorten them.
VersionDeltaFile
1.90+2-2sys/arch/amd64/conf/RAMDISK
+2-21 files

OpenBSD/src mQnjuf2sys/net rtsock.c

   route_output() can not use the info struct late in its function
   since the rtm struct that populated it was freed around the
   rtm_report() call. In that case access to info.rti_info[RTAX_DST]
   is a use-after-free.  Cache the address family before handling the
   route message so that the route_input call can use this value instead.

   Report from Bruce Dang of Calif.io
   OK deraadt@
VersionDeltaFile
1.391+6-3sys/net/rtsock.c
+6-31 files

OpenBSD/src DRnhoQTusr.bin/mandoc main.c

   oops, fix a one-byte mishap in the previous commit
VersionDeltaFile
1.270+2-2usr.bin/mandoc/main.c
+2-21 files

OpenBSD/src TZo2qLKusr.bin/mandoc main.c

   Refine unveil(2) usage.

   * Process man.conf(5) early before unveil(2) because it needs realpath(3).
   * Rather than unveiling the whole file system for reading and execution,
   only reveal the manpaths actually needed for reading, and /usr/share/locale/
   if needed, and only reveal the pager binary for execution.
   * Only reveal the whole file system for reading if input file names
   are listed individually on the command line.
   * Rather than unveiling /tmp unconditionally, only do so when it is
   actually needed for the pager.
   * When -O outfilename or -O tagfilename is specified, rather than
   unveiling the current working directory for writing, only unveil
   the specific filenames needed.

   Using some feedback from deraadt@, in particular reducing the number
   of vnodes that are held, and avoiding use of the "unveil" pledge(2).
VersionDeltaFile
1.269+212-105usr.bin/mandoc/main.c
+212-1051 files

OpenBSD/src xTcc3nDusr.bin/mandoc manpath.c manconf.h

   Prepare for refining unveil(2) usage by providing a function manpath_unveil()
   that makes the manpath directories accessible.  Soon to be used by man(1),
   spropos(1), and makewhatis(8).
VersionDeltaFile
1.33+45-5usr.bin/mandoc/manpath.c
1.10+5-2usr.bin/mandoc/manconf.h
1.226+3-1usr.bin/mandoc/mandoc.h
1.20+3-1usr.bin/mandoc/mandoc_msg.c
+56-94 files

OpenBSD/src bMgNbJEusr.bin/mandoc mansearch.c

   Delete the pointless logic that remembers the original working directory.
   It was never needed because manpath_add() in manpath.c has always been
   using realpath(3) since the very beginning in 2011, so struct manpaths
   only ever contains absolute paths.
   The only exception is man.cgi(8), but that chdir(2)s to the right
   directory beforehand and only ever uses one single manpath, ".".

   This simplifies the code with no functional change.
VersionDeltaFile
1.68+3-33usr.bin/mandoc/mansearch.c
+3-331 files

OpenBSD/src 9sGDTW3usr.bin/rpcgen rpc_util.c

   locase() in usr.bin/rpcgen/rpc_util.c copies an identifier into
   a static buffer without bounds checking

   OK deraadt@
VersionDeltaFile
1.18+3-1usr.bin/rpcgen/rpc_util.c
+3-11 files

OpenBSD/src tu8NutHlib/libc/gen getcap.c

   cgetnext() in lib/libc/gen/getcap.c copies a record name into a
   stack buffer without bounds checking

   OK deraadt@
VersionDeltaFile
1.39+5-1lib/libc/gen/getcap.c
+5-11 files

OpenBSD/src GJJIiHBsys/dev/wscons wsdisplay.c

   Some mapchar emulops require a question mark character, so don't permit
   loading if that is missing (bounded by firstchar and numchars).
   An AI triage report made a hastly conclusion there were bigger problems
   here but Miod figures it is just this ? problem.
   diff from miod
   report from Bruce Dang of Calif.io
VersionDeltaFile
1.156+8-1sys/dev/wscons/wsdisplay.c
+8-11 files

OpenBSD/src XXNmJh4usr.bin/ipcs ipcs.c

   In ipcs(1) use shm_cpid to determine whether a shared memory segment is in use.
   As since kern_sysctl.c r1.490 shm_internal is always NULL.

   ok deraadt
VersionDeltaFile
1.29+2-2usr.bin/ipcs/ipcs.c
+2-21 files

OpenBSD/src qmPFLELusr.sbin/vmctl main.c vmctl.h

   vmctl(8): switch to new disk format enum.

   Replace int's with the new enum type used by vmd.

   Discussed with mlarkin@
VersionDeltaFile
1.89+5-5usr.sbin/vmctl/main.c
1.45+4-4usr.sbin/vmctl/vmctl.h
1.98+3-3usr.sbin/vmctl/vmctl.c
+12-123 files

OpenBSD/src t0qMo4Jsys/dev/pv if_vio.c

   vio: recover from missed RX interrupts

   It seems at least on Oracle Cloud (arm64, KVM) and on vmd, sometimes rx
   interrupts get lost. As a workaround, check the virtqueues in vio_rxtick(),
   which allows to recover from this situation.

   Diff from renaud@
   tested by mbuhl@
   ok stsp@
VersionDeltaFile
1.79+2-1sys/dev/pv/if_vio.c
+2-11 files