Fix session_*_flag format variables which loop over the windows (they should
only be false if all windows do not have the flag, not the first one). GitHub
issue 5599.
Reset layout manually instead of calling window_unzoom which can go down the
notification path and end up double freeing the pane (this was previously
removed in 2015 but added back to fix a problem with late destroy - this is a
better fix). GitHub issue 5591 from Romain Francoise.
Improve downloading firmware by filename
dgl@ noticed that if we attempt to download by filename we didn't
first fetch the SHA256 to verify it was available to download and
always errored with grep failing to find the SHA256.
ok dgl@
Harmonise installurl handling
In installurl(5) document multiple lines are possible and tools always
use the last line. Adjust pkg_add and sysupgrade to do that. In all
programs add validation to ignore installurl lines which contain the set
of bad characters which were recently added to the installer.
Previously tools had subtle differences in their handling:
- pkg_add used the first line.
- sysupgrade concatenated lines together.
- syspatch used the last line if mulitple lines were present.
ok ajacoutot@
On install images without timezone data, the set_timezone function
returned before wait_cgiinfo was called. This meant the list of mirrors
was downloaded, but never presented to the user.
Call wait_cgiinfo in do_install directly (this more closely matches how
do_upgrade does it).
ok afresh1@
handle dynamic channel width changes correctly in iwx(4)
Avoids fatal firmware error ADVANCED_SYSASSERT 0x20101A28, where the
fw station on a PHY has a higher Tx rate scaling bandwidth than the PHY.
Thanks to Johannes Berg for explaining the firmware error code to me.
Problem reported and fix tested by Robert Palm.
In sysctl KERN_PROC_ARGS "cnt" is an int, read directly from a userspace
process. The while loop has a "cnt > 0" check, but on 32-bit platforms a value
can overflow and result in the querying process having data written past the
supplied buffer. Limit the number of elements in the array to ARG_MAX.
ok deraadt@
the installer picks a partition from several options to stage the
prefetched sets for upgrade/install. Among the decisions it looks for
at least 512M free. However, today an amd64 snap is 792M.
Bump the size we look for to 1024M free space. Software has grown, we
gotta grow with it.
OK deraadt@
No need to document or explicitly implement -h, shorten the
manual page and usage() accordingly; no functional change.
Also delete an incorrect sentence that talked about "multiple -v",
clarify where "rtrctl stats" output goes, and polish .Nm use
in the SYNOPSIS.
OK job@
Redesign vmm(4) to use files to manage vm ownership.
Now when VMM_IOC_CREATE creates a new virtual machine, it provides
the calling process a file descriptor to a file associated with the
vm. Access to the vm via various ioctl(2) calls, like VMM_IOC_RUN
and VMM_IOC_READREGS, now go through a file descriptor for that
file. A process can fork/exec and keep the file descriptor open to
allow inheritable access. (For now, we do not permit passing via
sockets to disparate processes.)
This solves a lot of lifecycle headaches, ties the lifetime of the
vm to the userland processes using it, and removes the hacky use
of pids and magic ids for controlling what a process with access
to /dev/vmm can do to a vm.
In vmd(8), the vmm process now takes sole responsibility for tracking
vm's it has created and the kernel is no longer expected to provide
this list back to vmd via the (now removed) VMM_IOC_INFO command.
[10 lines not shown]
the check for efifb || ACPI >= 5 to decide if GPT booting is preferred
is outdated and exposes consequences in new (-current) vmd which has
ACPI >= 5 but no EFI / GPT support. The right thing to do is check for
efi0 driver attachment. The tight floppy media lacks the efi0 driver,
and will only do MBR for other reasons.
issue discovered by phessler, ok mlarkin kettenis