DragonFlyBSD/src b492328 — usr.bin/pctrack pctrack.c

pctrack(8): explain unresolved tracking symbols

Add the DEBUG_PCTRACK hint for unresolved tracking entries. Keep table
errors and missing ncpus separate, and include the library error.

Bug: https://bugs.dragonflybsd.org/issues/3347
Bug: https://bugs.dragonflybsd.org/issues/3444
DeltaFile
+8-2usr.bin/pctrack/pctrack.c
+8-21 files

DragonFlyBSD/src 919846a — sbin/ccdconfig ccdconfig.c

ccdconfig(8): report kvm errors before closing the handle

Read the error while the handle is still valid.

Bug: https://bugs.dragonflybsd.org/issues/3444
DeltaFile
+2-2sbin/ccdconfig/ccdconfig.c
+2-21 files

DragonFlyBSD/src 9f9d82b — usr.bin/ipcs ipcs.c, usr.bin/netstat if.c main.c

Check required kvm(3) symbols before reading

Check required symbols in dconschat, ipcs, netstat and legacy pstat TTY
paths. Keep optional IPC subsystems usable. Check IPC reads and
allocations before using their data.

Use buffered IPC errors and report short reads explicitly instead of
relying on an error buffer that may not describe the incomplete read.

Bug: https://bugs.dragonflybsd.org/issues/3444
DeltaFile
+51-16usr.bin/ipcs/ipcs.c
+12-2usr.bin/netstat/main.c
+4-0usr.sbin/pstat/pstat.c
+4-0usr.bin/netstat/if.c
+1-1usr.sbin/dconschat/dconschat.c
+72-195 files

DragonFlyBSD/src 0458d53 — lib/libkvm kvm_file.c kvm_nlist.3

libkvm(3): clear failed lookups and report lookup errors

Clear requested symbol results before lookup. Keep the live failure
count and continue looking up later entries. Report lookup errors
without relying on the last errno, and preserve table errors in internal
callers.

Bug: https://bugs.dragonflybsd.org/issues/3444
DeltaFile
+35-14lib/libkvm/kvm.c
+14-6lib/libkvm/kvm_proc.c
+12-5lib/libkvm/kvm_getloadavg.c
+13-2lib/libkvm/kvm_nlist.3
+6-3lib/libkvm/kvm_file.c
+80-305 files

DragonFlyBSD/src d573aa0 — sys/kern subr_diskslice.c

kern: avoid reading a disk label while dumping

Checking an unlabelled dump slice can trigger a disk-label read through
normal buffered I/O. During a crash dump, that read can wait indefinitely
before the dump writer reaches its polled I/O path.

Skip the label read while dumping and use the slice bounds already held
in memory, keeping the normal label probe outside the dump path.

Bug: https://bugs.dragonflybsd.org/issues/3441
DeltaFile
+3-1sys/kern/subr_diskslice.c
+3-11 files

DragonFlyBSD/src 7cc2aa3 — sys/netinet6 nd6.c

nd6: keep foreign-CPU neighbors off the timer and purge list

Route requests create neighbor entries on each network CPU, but timers
and purge run on CPU 0. Purging a foreign-CPU entry deletes the matching
local route and can follow its freed neighbor entry. Link only CPU 0
entries into the list and unlink only linked entries; keep other CPUs
route-local neighbor data.

Bug: https://bugs.dragonflybsd.org/issues/3439
DeltaFile
+11-7sys/netinet6/nd6.c
+11-71 files

DragonFlyBSD/src 9524753 — share/man/man5 pf.conf.5

pf.conf.5: describe IPv6 fragment filtering without reassembly

IPv6 fragments are filtered as the Fragment header protocol, not blocked
unconditionally. State that port/type rules cannot pass them and that a
broad pass rule does not enforce those restrictions.

Bug: https://bugs.dragonflybsd.org/issues/3438
DeltaFile
+10-3share/man/man5/pf.conf.5
+10-31 files

DragonFlyBSD/src cebb74e — sys/net/pf pf_norm.c

pf: fix IPv6 fragment length checks

ip6_plen excludes the IPv6 header, but off includes it. Check packet and
fragment-header bounds, use matching length units, and reject misaligned
non-final fragments. Include pre-fragment extension headers in the
reassembled payload limit.

Bug: https://bugs.dragonflybsd.org/issues/3437
DeltaFile
+8-2sys/net/pf/pf_norm.c
+8-21 files

DragonFlyBSD/src 3300033 — usr.sbin/ndp ndp.c

ndp(8): avoid deleting covering routes and report socket errors

RTM_GET can return a covering route for an absent neighbor. Require the
requested address and an NDP route before deletion. Return failure for
routing-socket write, read and reply errors, and pass deletion failure
to the exit status.

Bug: https://bugs.dragonflybsd.org/issues/3436
DeltaFile
+46-29usr.sbin/ndp/ndp.c
+46-291 files

DragonFlyBSD/src f61fa2f — lib/libssh Makefile, usr.bin/ssh Makefile

libssh: Enable OpenBSD compat for <sys/queue.h>

This removes the two TAILQ_FOREACH_SAFE redefinition in libssh and
usr.bin/ssh.
DeltaFile
+4-3lib/libssh/Makefile
+0-2usr.bin/ssh/Makefile
+4-52 files

DragonFlyBSD/src f82e06c — lib/libssh Makefile

libssh: Silence a -Wpointer-compare warning in misc.c

Fix the building failure.

Meanwhile, raise WARNS to 3.
DeltaFile
+2-2lib/libssh/Makefile
+2-21 files

DragonFlyBSD/src 7d51b22 — initrd/rescue Makefile

initrd: Add sftp(1) program to rescue
DeltaFile
+2-0initrd/rescue/Makefile
+2-01 files

DragonFlyBSD/src 6152f89 — lib/libssh config.h.auto config.h, lib/libssh/openbsd-compat sys-queue.h blowfish.c

openssh: Update and refactor makefiles for 10.6p1 import

Highlights:
* New components: /usr/libexec/ssh-sk-helper and /usr/libexec/sshd-auth.
* Enabled the security key helper for the later FIDO/U2F support.
  NOTE: That requires to import the libfido2 and libcbor libraries.
* Removed libprivate_ssh library; it has been refactored as an internal
  library.

Major changes:
* Refactor lib/libssh to make it an internal library, rather than
  previously as a private library.
* Sync the libssh.a source list with the vendor's makefile.
* The auto-generated config.h is copied as lib/libssh/config.h.auto, and
  the final config.h is created with the makefile to apply our
  corrections.
* Add the lib/libssh/Makefile.common to reduce duplicate code among all
  the OpenSSH components.
DeltaFile
+0-2,118lib/libssh/config.h
+2,106-0lib/libssh/config.h.auto
+0-1,079lib/libssh/openbsd-compat/glob.c
+0-755lib/libssh/openbsd-compat/sys-tree.h
+0-693lib/libssh/openbsd-compat/blowfish.c
+0-628lib/libssh/openbsd-compat/sys-queue.h
+2,106-5,27340 files not shown
+2,456-8,65346 files

DragonFlyBSD/src ec6ce3e — crypto/openssh README.DRAGONFLY README.DELETED

crypto/openssh: Update our READMEs

Rewrite the upgrade notes in README.DRAGONFLY.  Also, we don't need any
local modifications.
DeltaFile
+158-596crypto/openssh/README.DELETED
+71-39crypto/openssh/README.DRAGONFLY
+229-6352 files

DragonFlyBSD/src 3e824cd — crypto/openssh sntrup761.c configure.ac

Merge branch 'vendor/OPENSSH'

Upgrade OpenSSH from 9.8p1 to 10.6p1.

The last update didn't use the vendor branch, so the vendor branch
upgraded from 9.1p1 to 10.6p1, but the real update is 9.8p1 to 10.6p1.
DeltaFile
+0-27,691crypto/openssh/configure
+27,332-0crypto/openssh/libcrux_internal.h
+0-16,255crypto/openssh/config.log
+4,609-1,960crypto/openssh/ed25519.c
+0-5,761crypto/openssh/configure.ac
+1,916-1,038crypto/openssh/sntrup761.c
+33,857-52,705273 files not shown
+61,620-74,187279 files

DragonFlyBSD/src d8e1400 — share/mk bsd.crunchgen.mk

bsd.crunchgen.mk: Make "depend" for internal libraries first

A program may depend on the output (e.g., a generated header) of
"make depend" of its internal libraries, so make "depend" for the
internal libraries first.

This is required by the forthcoming update to the libssh internal
library.
DeltaFile
+8-1share/mk/bsd.crunchgen.mk
+8-11 files

DragonFlyBSD/src e8780ae — crypto/openssh misc.c ssh.1

vendor/OPENSSH: Upgrade from 10.5p1 to 10.6p1
DeltaFile
+4,598-1,983crypto/openssh/ed25519.c
+191-65crypto/openssh/misc-agent.c
+121-64crypto/openssh/channels.c
+148-14crypto/openssh/servconf.c
+74-74crypto/openssh/ssh.1
+125-4crypto/openssh/misc.c
+5,257-2,20468 files not shown
+6,242-2,76774 files

DragonFlyBSD/src d209117 — crypto/openssh sshd.c ssh-pkcs11.c

vendor/OPENSSH: Upgrade from 9.1p1 to 10.5p1
DeltaFile
+27,332-0crypto/openssh/libcrux_internal.h
+1,916-1,038crypto/openssh/sntrup761.c
+2,079-737crypto/openssh/servconf.c
+789-1,955crypto/openssh/sshkey.c
+2,311-0crypto/openssh/ssh-pkcs11.c
+782-1,331crypto/openssh/sshd.c
+35,209-5,061269 files not shown
+74,159-17,860275 files

DragonFlyBSD/src ff4b76a — sys/sys diskmbr.h

<sys/diskmbr.h>: Add exFAT to 0x7 partition type
DeltaFile
+1-1sys/sys/diskmbr.h
+1-11 files

DragonFlyBSD/src a6e50c3 — sbin/ifconfig ifwg.c

ifconfig(8): Fix false -Wuse-after-free warnings in ifwg.c

Tweak the code to fix the false -Wuse-after-free warnings in
wg_data_grow() from GCC 12.5:

```
/usr/src/sbin/ifconfig/ifwg.c: In function 'wg_data_grow':
/usr/src/sbin/ifconfig/ifwg.c:79:20: warning: pointer may be used after 'realloc' [-Wuse-after-free]
   79 |         aip_offset = (char *)wg_aip - (char *)wg_interface;
      |         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/sbin/ifconfig/ifwg.c:82:33: note: call to 'realloc' here
   82 |         wg_data.wgd_interface = realloc(wg_interface, wg_data.wgd_size);
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/sbin/ifconfig/ifwg.c:78:21: warning: pointer may be used after 'realloc' [-Wuse-after-free]
   78 |         peer_offset = (char *)wg_peer - (char *)wg_interface;
      |         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/sbin/ifconfig/ifwg.c:82:33: note: call to 'realloc' here
   82 |         wg_data.wgd_interface = realloc(wg_interface, wg_data.wgd_size);
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    [3 lines not shown]
DeltaFile
+9-5sbin/ifconfig/ifwg.c
+9-51 files

DragonFlyBSD/src dea249a — bin/csh/csh Makefile

csh(1): Silence -Wuse-after-free warnings from GCC 12.5

GCC 12.5 generates the following -Wuse-after-free warnings, which are
all false positives, so silence them for this vendor source.  I'd like
to submit the code fixes to upstream and then do a vendor update.

```
/usr/src/bin/csh/csh/../../../contrib/tcsh-6/sh.func.c: In function 'iconv_catgets':
/usr/src/bin/csh/csh/../../../contrib/tcsh-6/sh.func.c:2600:34: warning: pointer may be used after 'realloc' [-Wuse-after-free]
 2600 |                 dest = p + (dest - buf);
      |                            ~~~~~~^~~~~~
In file included from /usr/src/bin/csh/csh/../../../contrib/tcsh-6/sh.func.c:32:
/usr/src/bin/csh/csh/../../../contrib/tcsh-6/sh.h:499:25: note: call to 'realloc' here
  499 | # define xrealloc(p, i) realloc(p, i)
      |                         ^~~~~~~~~~~~~
/usr/src/bin/csh/csh/../../../contrib/tcsh-6/sh.func.c:2597:26: note: in expansion of macro 'xrealloc'
 2597 |                 if ((p = xrealloc(buf, buf_size * 2)) == NULL)
      |                          ^~~~~~~~
/usr/src/bin/csh/csh/../../../contrib/tcsh-6/sh.proc.c: In function 'morecommand':

    [22 lines not shown]
DeltaFile
+8-0bin/csh/csh/Makefile
+8-01 files

DragonFlyBSD/src e42f05a — contrib/gcc-12/gcc expmed.cc

contrib/gcc-12: Silence -Wmaybe-uninitialized warning

GCC 12.5 would generate the following -Wmaybe-uninitialized warning for
expmed.cc, which defines the #pragma to force this diagnostic to be a
warning, so the GCC's own bootstrap that uses -Werror could succeed.
However, this #pragma makes this warning can't be silenced by a
-Wno-maybe-uninitialized option on the command line. So just modify the
source file to ignore it.

```
/usr/src/gnu/usr.bin/cc120/libbackend/../../../../contrib/gcc-12/gcc/expmed.cc: In function 'rtx_def* extract_bit_field_1(rtx, poly_uint64, poly_uint64, int, rtx, machine_mode, machine_mode, bool, bool, rtx_def**)':
/usr/src/gnu/usr.bin/cc120/libbackend/../../../../contrib/gcc-12/gcc/expmed.cc:1832:45: warning: '*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))' may be used uninitialized [-Wmaybe-uninitialized]
 1832 |       rtx sub = extract_bit_field_as_subreg (mode1, op0, imode,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
 1833 |                                              bitsize, bitnum);
      |                                              ~~~~~~~~~~~~~~~~
/usr/src/gnu/usr.bin/cc120/libbackend/../../../../contrib/gcc-12/gcc/expmed.cc:1792:19: note: '*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))' was declared here
 1792 |   scalar_int_mode imode;
      |                   ^~~~~

    [6 lines not shown]
DeltaFile
+1-1contrib/gcc-12/gcc/expmed.cc
+1-11 files

DragonFlyBSD/src 9ef3e83 — gnu/usr.bin/cc80/backends/guts/guts-common Makefile, gnu/usr.bin/cc80/backends/programs/cc1 Makefile

gnu/cc80: Unify the hack of forcing a C++ compiler to compile .c files
DeltaFile
+15-18gnu/usr.bin/cc80/backends/programs/cc1/Makefile
+15-16gnu/usr.bin/cc80/backends/programs/cc1plus/Makefile
+8-15gnu/usr.bin/cc80/backends/programs/lto-wrapper/Makefile
+7-13gnu/usr.bin/cc80/backends/programs/lto1/Makefile
+7-13gnu/usr.bin/cc80/backends/programs/collect2/Makefile
+7-8gnu/usr.bin/cc80/backends/guts/guts-common/Makefile
+59-836 files not shown
+97-12712 files

DragonFlyBSD/src 95971b5 — gnu/usr.bin/cc80/drivers/c++ Makefile, gnu/usr.bin/cc80/drivers/cc Makefile

gnu/cc80: Correct CFLAGS to fix mkdep warnings

These programs require to use a C++ compiler to compile their '.c'
sources, so they used hacks to do this, one of which is overriding
'MKDEPCC=${CXX}'.  However, the CFLAGS wasn't overridden, so calling
mkdep(1) programs would give the warnings:

```
cc1plus: warning: command-line option '-std=gnu11' is valid for C/ObjC but not for C++
```

Fix it by additionally overriding CC and CFLAGS, similar to the
practice used in 'cc80/cc_tools/libcpp/Makefile'.  One bonus is that we
can also remove the rule overriding.
DeltaFile
+5-7gnu/usr.bin/cc80/drivers/gcov/Makefile
+5-7gnu/usr.bin/cc80/drivers/cpp/Makefile
+5-7gnu/usr.bin/cc80/drivers/cc/Makefile
+5-7gnu/usr.bin/cc80/drivers/c++/Makefile
+20-284 files

DragonFlyBSD/src b239507 — sys/kern kern_module.c

kern: skip module shutdown handlers on panic

module_shutdown() is a shutdown_post_sync handler, so it also runs on the
panic path after the panicking CPU has stopped the other CPUs.  Some
MOD_SHUTDOWN handlers block on kernel threads that cannot run once their
CPU is stopped: vn calls disk_destroy(), and disk_msg_send_sync() then
waits forever for the disk_msg_core thread.  The machine hangs after
"Dump complete" and never reboots.

Skip the module shutdown handlers on a panic, as resettodr_on_shutdown()
and shutdown_kproc() already do.  The dump is already written when this
handler runs.

Reproduced in a QEMU/NVMM guest: panic + dump with
hw.acpi.handle_reboot=1 hangs at "Dump complete" on SMP and reboots on a
single CPU.  With this change the guest reboots with
hw.acpi.handle_reboot 1 and 0, with and without a dump.

Bug: https://bugs.dragonflybsd.org/issues/3450
DeltaFile
+4-0sys/kern/kern_module.c
+4-01 files

DragonFlyBSD/src 4e10f78 — sys/conf kmod.mk kern.pre.mk

kernel: Enable -Werror for gcc120 (GCC 12.5)
DeltaFile
+1-1sys/conf/kmod.mk
+1-1sys/conf/kern.pre.mk
+2-22 files

DragonFlyBSD/src fdfb91d — sys/dev/raid/mrsas mrsas.h mrsas.c

mrsas(4): Fix lost wakeups by restoring two wait queues

mrsas(4) is a port of the Linux megaraid_sas driver (see e.g. v3.13).
The port translated Linux's wake_up(), which wakes every non-exclusive
waiters on a wait queue, as wakeup_one(), which wakes only one. It also
collapsed Linux driver's two wait queues ('int_cmd_wait_q' for internal
DCMDs and 'abort_cmd_wait_q' for aborts) into the single 'sc->chan'
channel.

Both loops wait on a per-command predicate (cmd->cmd_status), so a
single wakeup on a shared channel can wake the wrong thread and drop the
wakeup for the command that actually completed.  With two blocked
commands outstanding, one of them then times out after
MRSAS_INTERNAL_CMD_WAIT_TIME even though it completed.

Fix the problem by correct the two porting issues:

* internal DCMDs continue to use 'sc->int_chan' that is renamed from
  'sc->chan', woken by mrsas_wakeup();

    [21 lines not shown]
DeltaFile
+4-16sys/dev/raid/mrsas/mrsas.c
+3-2sys/dev/raid/mrsas/mrsas.h
+7-182 files

DragonFlyBSD/src 9252143 — sys/net/wg if_wg.c

if_wg: Simplify BPF tap code

bpf_ptap() handles the bpf_gettoken() internally, so remove the
wg_bpf_ptap() helper and simplify the code.
DeltaFile
+9-21sys/net/wg/if_wg.c
+9-211 files

DragonFlyBSD/src 2059392 — sys/dev/disk/iscsi/initiator isc_subr.c

iscsi: Fix -Wvla warnings in isc_subr.c
DeltaFile
+7-4sys/dev/disk/iscsi/initiator/isc_subr.c
+7-41 files

DragonFlyBSD/src e66c743 — sys/dev/acpica/acpi_hp acpi_hp.c

acpica: Fix -Wvla warnings in acpi_hp.c

Avoid using a variable solely for sizes that are never meant to be
modified runtime.

Obtained-from: FreeBSD (commit 2cafe2f90ca5d7c0ac859db440fa4159f442f128)
DeltaFile
+12-15sys/dev/acpica/acpi_hp/acpi_hp.c
+12-151 files