cheloha [Thu, 1 Sep 2022 00:14:36 +0000 (00:14 +0000)]
ts(1): parse user format string only once
Currently, ts(1) reparses the user format string every time it prints
a timestamp. This is wasteful.
If we isolate the parsing loop in fmtfmt() and move the rest of the
work into a new function, fmtprint(), we can cut some overhead out
of the hot loop.
We still need to update any microsecond substrings in the parsed
format string every time we print a timestamp. So during parsing in
fmtfmt() we build a list of pointers to locations in the parsed buffer
where the microsecond substring needs to be copied during fmtprint().
With input from deraadt@.
Link1: https://marc.info/?l=openbsd-tech&m=
165769139318084&w=2
Link2: https://marc.info/?l=openbsd-tech&m=
165910022501353&w=2
OK job@
kn [Thu, 1 Sep 2022 00:13:35 +0000 (00:13 +0000)]
Hook up installboot(8) tests on sparc64
Default tests (USE_SOFTRAID=Yes, NDISKS='1 2') pass except for '-r mnt',
as mentioned (fix pending).
USE_SOFTRAID=no and/or NDISKS=1 make '-r mnt' work.
kn [Wed, 31 Aug 2022 23:53:22 +0000 (23:53 +0000)]
Introduce USE_SOFTRAID to allow testing on vnd(4) directly
This is mostly for architectures which don't have softraid(4) support
in installboot(8), but should also be useful in general to test different
setups and thus increase coverage.
Default to root on softraid on vnd on all architectures that support it:
amd64, arm64, i386 and sparc64; use root on vnd on others (yet to come).
patrick [Wed, 31 Aug 2022 23:31:35 +0000 (23:31 +0000)]
Compare equality of looked up node using pointers instead of
strings, as the component name provided in the IORT might be
specified in a different way than our ACPI stack would do.
ok kettenis@
kn [Wed, 31 Aug 2022 23:10:01 +0000 (23:10 +0000)]
Silence cleanup, rename internal setup targets for clarity
kn [Wed, 31 Aug 2022 22:54:41 +0000 (22:54 +0000)]
Always run prepare
Not all architectures require/implement -p, but installboot(8) provides stubs,
so leave it to the program to (not) do something.
jmc [Wed, 31 Aug 2022 22:27:14 +0000 (22:27 +0000)]
use the posix phrasing to improve the description of "shift";
nudge from luka krmpotic
tb [Wed, 31 Aug 2022 21:34:14 +0000 (21:34 +0000)]
Add an empty line for consistency.
mvs [Wed, 31 Aug 2022 21:23:02 +0000 (21:23 +0000)]
Move PRU_SENDOOB request to (*pru_sendoob)().
PRU_SENDOOB request always consumes passed `top' and `control' mbufs. To
avoid dummy m_freem(9) handlers for all protocols release passed mbufs
in the pru_sendoob() EOPNOTSUPP error path.
Also fix `control' mbuf(9) leak in the tcp(4) PRU_SENDOOB error path.
ok bluhm@
krw [Wed, 31 Aug 2022 20:52:15 +0000 (20:52 +0000)]
Replace "newfs_msdos" and "fsck_msdos" with "newfs -t msdos" and "fsck -t
msdos".
Add some missing spaces after "=".
Constify the static strings.
Prodded a while ago by deraadt@, tweaks from kn@, ok kn@
tb [Wed, 31 Aug 2022 20:49:37 +0000 (20:49 +0000)]
Recommit -r1.45 but without error checking EVP_PKEY_copy_parameters()
EVP_PKEY_copy_parameters() will unconditionally fail if the pkey's ameth
has no copy_params(). Obviously this is indistinguishable from actual
failure...
ok jsing
patrick [Wed, 31 Aug 2022 20:49:12 +0000 (20:49 +0000)]
Support SMMUv3 IORT nodes as well in the midlayers. This allows IOMMU
mappings to reach a future SMMUv3 implementation.
ok kettenis@, mlarkin@
kn [Wed, 31 Aug 2022 20:48:55 +0000 (20:48 +0000)]
Rename helper vars/files under obj/
Up-front cleanup for a future diff to run directly on vnd(4) without softraid(4).
No functional change.
kn [Wed, 31 Aug 2022 20:23:57 +0000 (20:23 +0000)]
Put MD fdisk usage into new FORMAT_DISK, also softraid volume after chunks
tb [Wed, 31 Aug 2022 20:20:53 +0000 (20:20 +0000)]
Revert r1.46. Causes fireworks in regress.
kettenis [Wed, 31 Aug 2022 20:16:02 +0000 (20:16 +0000)]
MSIs on the x13s are routed through both a "normal" SMMU and a "v3" SMMU.
So handle this case in acpipci(4) and kill the hack to disable MSIs.
ok patrick@, mlarkin@, deraadt@
kn [Wed, 31 Aug 2022 19:40:37 +0000 (19:40 +0000)]
Log copy of /ofwboot
Another step towards more consistent behaviour across platforms.
This leaves only hppa and landisk **not** logging such copies,
but I can't test on those.
OK miod
kn [Wed, 31 Aug 2022 19:38:42 +0000 (19:38 +0000)]
Denote possible answers in the usual manner
OK miod
miod [Wed, 31 Aug 2022 18:46:06 +0000 (18:46 +0000)]
Make installboot on landisk aware of a possible MBR on the disk, and in this
case install the first level bootstrap at the beginning of the of the wd0a
filesystem, rather than at the beginning of the disk.
Both locations work but the previous behaviour overwriting an existing MBR
is a violation of POLA.
tweaks & ok krw@
dv [Wed, 31 Aug 2022 16:17:18 +0000 (16:17 +0000)]
relayd(8): change agentx_getsock to return void
Only has one return value and it's never checked.
ok martijn@, tb@
kettenis [Wed, 31 Aug 2022 16:10:59 +0000 (16:10 +0000)]
Add qcgpio(4) and qciic(4), drivers for the Qualcomm GPIO and I2C controllers
found on the SC8280XP SoC. Together these drivers make the keyboard,
trackpoint and touchpad work on the x13s.
ok deraadt@
claudio [Wed, 31 Aug 2022 15:51:44 +0000 (15:51 +0000)]
Remove IMSG_CTL_SHOW_RIB_HASH and struct rde_hashstats which are no
longer used. Also cleanup some hash sizes which are also no longer used.
OK tb@
kettenis [Wed, 31 Aug 2022 15:14:01 +0000 (15:14 +0000)]
Introduce iic_intr_disestablish() and use it in ihidev(4).
ok jcs@
claudio [Wed, 31 Aug 2022 15:00:53 +0000 (15:00 +0000)]
Remove the hash statistics print code. The RDE no longer sends these
imsgs.
OK tb@
kettenis [Wed, 31 Aug 2022 14:47:22 +0000 (14:47 +0000)]
Add apldc(4), apldchidev(4), apldckdb(4) and aplrtkit(4). Together these
drivers implement support for the Dockchannel-base keyboard found on
Apple M2 laptops.
ok mlarkin@, patrick@
claudio [Wed, 31 Aug 2022 14:29:36 +0000 (14:29 +0000)]
Switch the generic attribute cache to an RB tree.
OK benno@ tb@
tb [Wed, 31 Aug 2022 14:27:34 +0000 (14:27 +0000)]
Remove most mentions of contexts on the stack.
tb [Wed, 31 Aug 2022 13:28:39 +0000 (13:28 +0000)]
nasty whitespace
tb [Wed, 31 Aug 2022 13:01:01 +0000 (13:01 +0000)]
Rework DSA_size() and ECDSA_size()
DSA_size() and ECDSA_size() have a very special hack. They fudge up an
ASN1_INTEGER with a size which is typically > 100 bytes, backed by a
buffer of size 4. This was "fine", however, since they set buf[0] = 0xff,
where the craziness that was i2c_ASN1_INTEGER() only looks at the first
octet (one may then ask why a buffer of size 4 was necessary...).
This changed with the rewrite of i2c_ASN1_INTEGER(), which doesn't
respect this particular hack and rightly assumes that it is fed an
actual ASN1_INTEGER...
Instead, create an appropriate signature and use i2d to determine its
size.
Fixes an out-of-bounds read flagged by ASAN and oss-fuzz.
ok jsing
tb [Wed, 31 Aug 2022 12:29:08 +0000 (12:29 +0000)]
Avoid division by zero if no connection was made.
CID 184043
claudio [Wed, 31 Aug 2022 12:13:59 +0000 (12:13 +0000)]
Add missing OpenBSD id comment
benno [Wed, 31 Aug 2022 11:29:12 +0000 (11:29 +0000)]
make kernel build without INET6 again
ok sashan@
claudio [Wed, 31 Aug 2022 11:25:36 +0000 (11:25 +0000)]
Make sure that only one roa softreconfig runner is run at any time.
If a run takes to long drop the current update and wait for the next update.
OK benno@
krw [Wed, 31 Aug 2022 11:04:41 +0000 (11:04 +0000)]
Remove now unused and unreferenced disktab.h.
krw [Wed, 31 Aug 2022 10:46:33 +0000 (10:46 +0000)]
Whitespace fixes.
tb [Wed, 31 Aug 2022 09:39:59 +0000 (09:39 +0000)]
Some missing return checks
tb [Wed, 31 Aug 2022 09:38:00 +0000 (09:38 +0000)]
Avoid some buffer overflows in ecdsatest
The ASN.1 encoding of the modified ECDSA signature can grow in size due to
padding of the ASN.1 integers. Instead of reusing the same signature buffer
freshly allocate it. Avoids some buffer overflows caught by ASAN.
tb [Wed, 31 Aug 2022 09:36:46 +0000 (09:36 +0000)]
Revert previous. Committed the wrong version of the diff.
tb [Wed, 31 Aug 2022 09:33:39 +0000 (09:33 +0000)]
Avoid some buffer overflows in ecdsatest
The ASN.1 encoding of the modified ECDSA signature can grow in size due to
padding of the ASN.1 integers. Instead of reusing the same signature buffer
freshly allocate it. Avoids some buffer overflows caught by ASAN.
mpi [Wed, 31 Aug 2022 09:26:04 +0000 (09:26 +0000)]
Introduce a function to trylock a page instead of duplicating the logic.
Stolen from NetBSD.
ok jsg@
krw [Wed, 31 Aug 2022 09:20:57 +0000 (09:20 +0000)]
Remove "force CHS" remnants. LBA uber alles.
Mildly sad noises from Nick.
ok miod@ mlarkin@
martijn [Wed, 31 Aug 2022 09:19:22 +0000 (09:19 +0000)]
Rewrite the searchrange end calculation routine.
The old one had a bug which allowed it to move backwards on overlapping
regions and also didn't always returned the optimal end position.
OK tb@
gnezdo [Wed, 31 Aug 2022 09:07:35 +0000 (09:07 +0000)]
Lock vmobjlock then check u_flags & UVM_VNODE_VALID in uvn_attach
This is a continuation of this commit:
"Always acquire the `vmobjlock' before incrementing an object's reference."
Unfortuantely this created a race found by syzkaller manifesting as:
panic: kernel diagnostic assertion "uvn->u_obj.uo_refs == 0" failed:
file "sys/uvm/uvm_vnode.c", line 234
ok mpi@
Reported-by: syzbot+dd2d2684ad2818c927da@syzkaller.appspotmail.com
krw [Wed, 31 Aug 2022 08:35:07 +0000 (08:35 +0000)]
If a partition both starts and ends beyond the end of the unit
only warn about the start.
ok millert@
nicm [Wed, 31 Aug 2022 08:07:05 +0000 (08:07 +0000)]
Fix window size report, from Vincent Bernat.
fcambus [Wed, 31 Aug 2022 07:25:45 +0000 (07:25 +0000)]
Sync the supported hardware list with armv7.html.
OK jsg@
tb [Wed, 31 Aug 2022 07:15:31 +0000 (07:15 +0000)]
Switch loop bounds from size_t to int in check_hosts()
sk_num() can return a negative value, in which case the upper bound is
SIZE_MAX, which results in a very long for loop.
CID 153997
ok jsing
tb [Wed, 31 Aug 2022 07:12:30 +0000 (07:12 +0000)]
Check return values in ssl_print_tmp_key()
Use EVP_PKEY_get0_EC_KEY() instead of the get1 version to avoid an
EVP_PKEY_free(). Check return values: if either EVP_PKEY_get0_EC_KEY()
or EC_KEY_get0_group() fail, a NULL dereference occurs.
CID 43289
ok jsing
tb [Wed, 31 Aug 2022 06:51:36 +0000 (06:51 +0000)]
Avoid potential NULL dereference in ssl_set_pkey()
Switch from X509_get_pubkey() to X509_get0_pubkey() to avoid an unnecessary
EVP_PKEY_free(). Check the return values of X509_get0_pubkey() and
EVP_PKEY_copy_parameters(). If the former returns NULL, the latter will
dereference NULL.
CID 25020
ok jsing
jsg [Wed, 31 Aug 2022 06:23:06 +0000 (06:23 +0000)]
backport Xr fix
ok djm@
djm [Wed, 31 Aug 2022 02:56:40 +0000 (02:56 +0000)]
whitespace
guenther [Wed, 31 Aug 2022 01:27:04 +0000 (01:27 +0000)]
Refine the change in rev 1.125: the UVM mitigation for CoW faulting
when multiple CPUs are running threads in the process is only needed
when there can be multiple CPUs, so save a fault on SP builds.
ok miod@ mpi@
tb [Tue, 30 Aug 2022 23:41:53 +0000 (23:41 +0000)]
stray tab
tb [Tue, 30 Aug 2022 23:40:37 +0000 (23:40 +0000)]
whitespace
job [Tue, 30 Aug 2022 22:48:16 +0000 (22:48 +0000)]
Add ASPA regress bits
tb [Tue, 30 Aug 2022 22:42:32 +0000 (22:42 +0000)]
Avoid dead assignment
tb [Tue, 30 Aug 2022 20:40:14 +0000 (20:40 +0000)]
Check HMAC() return value to avoid a later use of uninitialized
CID 25421
tb [Tue, 30 Aug 2022 20:20:02 +0000 (20:20 +0000)]
Remove a commented-out sk_push that has been hanging around for > 20 years
benno [Tue, 30 Aug 2022 19:52:58 +0000 (19:52 +0000)]
remove an unused argument of ixgbe_rx_checksum()
ok mbuhl@
bluhm [Tue, 30 Aug 2022 19:42:29 +0000 (19:42 +0000)]
Syzkaller found a missing input validation in pipex mppe keylenbits.
Reported-by: syzbot+2eca95b271d07ab91b43@syzkaller.appspotmail.com
tested yasuoka@; OK mvs@ yasuoka@
tb [Tue, 30 Aug 2022 19:33:26 +0000 (19:33 +0000)]
chacha20_poly1305_cleanup() should return 1
Otherwise EVP_CIPHER_CTX_cleanup() leaks, as spotted by the ASAN CI.
ok jsing
job [Tue, 30 Aug 2022 18:56:49 +0000 (18:56 +0000)]
Add support for ASPA objects (draft-ietf-sidrops-aspa-profile-10)
ASPA objects are published in the RPKI and can be used to detect and
mitigate BGP route leaks. Validated ASPA Payloads are visible through
filemode (-f) and the JSON output format (-j).
With feedback from tb@
OK claudio@ tb@
claudio [Tue, 30 Aug 2022 18:50:21 +0000 (18:50 +0000)]
Switch nexthop hash to a RB tree.
OK benno@
krw [Tue, 30 Aug 2022 18:50:06 +0000 (18:50 +0000)]
Nuke disktab.h references in preparation for nuking disktab.h.
disktab.h has not been used or useful for a looooong time.
Detailed historical research by jsg@.
ok jsg@ deraadt@
kn [Tue, 30 Aug 2022 18:23:58 +0000 (18:23 +0000)]
Remove struct ifnet's unused if_switchport member
This is a switch(4) left-over.
Even though it is defined under _KERNEL, a few ports do define it and
include <net/if_var.h>, so this removal warrants a REVISION bump for all
potential ports consumers (once ports bulk machines run on a snapshot
containing this commit).
OK mvs
tb [Tue, 30 Aug 2022 18:23:40 +0000 (18:23 +0000)]
Plug leak of BIO in tls13_quic_init()
If rbio and wbio are the same, SSL_free() only frees one BIO, so the
BIO_up_ref() before SSL_set_bio() leads to a leak.
ok jsing
martijn [Tue, 30 Aug 2022 17:37:03 +0000 (17:37 +0000)]
Remove now unused search variable. Missed in previous.
OK tb@
martijn [Tue, 30 Aug 2022 17:33:20 +0000 (17:33 +0000)]
Remove the downwards check for overlapping regions when the subtree flag is
set.
There's a bit of inverted logic in there and this feature will probably get
in the way of the blocklist feature (and maybe others)
OK tb@
dv [Tue, 30 Aug 2022 17:09:21 +0000 (17:09 +0000)]
Initial support for mmio assist for vmm(4)
Provide the basic information required for a userland assist in
emulating instructions touching mmio regions, sending as much
information as is provided by the host hardware.
No decode or assist provided at the moment by vmd(8).
ok mlarkin@
miod [Tue, 30 Aug 2022 16:26:29 +0000 (16:26 +0000)]
Remove long unused WARN_REFERENCES macro; idea guenther@, ok jsg@ jca@
miod [Tue, 30 Aug 2022 16:24:16 +0000 (16:24 +0000)]
Fix uninitialized variable after the switch to (*pru_send); found the hard
way on alpha.
ok bluhm@ mvs@
yasuoka [Tue, 30 Aug 2022 16:06:09 +0000 (16:06 +0000)]
Use BUFSIZ instead of PATH_MAX. Since it doesn't anything with a file
system path. input from claudio
ok tb claudio
claudio [Tue, 30 Aug 2022 16:00:21 +0000 (16:00 +0000)]
Add missing #include <sys/queue.h>
yasuoka [Tue, 30 Aug 2022 15:57:19 +0000 (15:57 +0000)]
Give a string which length is multiple of 4 to b64_pton() since the
function assumes that the input ends at end of 24-bit group.
ok tb claudio
martijn [Tue, 30 Aug 2022 14:54:18 +0000 (14:54 +0000)]
copy over av_oid_end.bo_n instead of av_oid.bo_n bytes when copying over
the searchrange end oid.
OK tb@
tb [Tue, 30 Aug 2022 14:33:26 +0000 (14:33 +0000)]
Avoid leak in proxy_parse_uri()
with/ok claudio
claudio [Tue, 30 Aug 2022 12:49:13 +0000 (12:49 +0000)]
Reshuffle and cleanup the includes a little bit.
claudio [Tue, 30 Aug 2022 12:45:13 +0000 (12:45 +0000)]
In RRDP mode it is possible that a file in the validated cache dir is
no longer valid while the newer file in the .rrdp directory is not (yet)
valid. In this case do not copy the old file over the newer file.
RRDP has no method to identiy inconsistent repos (unlike rsync) so if
the wrong file is put in .rrdp it is not noticed appart from the
verification process failing for that file.
OK tb@ job@
bluhm [Tue, 30 Aug 2022 11:53:03 +0000 (11:53 +0000)]
Refactor internet PCB lookup function. Rename in_pcbhashlookup()
so the public API is in_pcblookup() and in_pcblookup_listen(). For
internal use introduce in_pcbhash_insert() and in_pcbhash_lookup()
to avoid code duplication. Routing domain is unsigned, change the
type to u_int.
OK mvs@
bluhm [Tue, 30 Aug 2022 09:35:24 +0000 (09:35 +0000)]
Protect the receive socket buffer in UDP input with per PCB mutex.
OK claudio@ mvs@
tb [Tue, 30 Aug 2022 08:45:06 +0000 (08:45 +0000)]
Plug memory leak in X509_REQ_print_ex()
CID 356353
ok jsing
mpi [Tue, 30 Aug 2022 08:30:58 +0000 (08:30 +0000)]
Move duplicated code to free swap resources into its own function.
ok mlarkin@
florian [Tue, 30 Aug 2022 05:46:50 +0000 (05:46 +0000)]
sync to libunbound 1.16.2; heavy lifting by sthen
jmc [Tue, 30 Aug 2022 05:40:28 +0000 (05:40 +0000)]
overriden -> overridden;
tb [Mon, 29 Aug 2022 19:42:01 +0000 (19:42 +0000)]
Fix growth check in compress(1)/gzip(1)
If a compressed file is larger than its expanded version, compress(1) and
gzip(1) don't compress unless -f is given. As found by gkoehler, the check
is not quite correct for very small files or files with sufficiently random
data. Fix the check so that slight growth still triggers the check.
ok millert
krw [Mon, 29 Aug 2022 19:39:10 +0000 (19:39 +0000)]
Print warning when a GPT partition start or end is outside the
usable LBA area of the device the GPT is currently inhabiting.
Makes GPT display as informative as MBR display.
In passing, eliminate possible underflow in partition size
calculation.
ok deraadt@
ajacoutot [Mon, 29 Aug 2022 19:37:32 +0000 (19:37 +0000)]
When using logger(1), also log the message to standard error so we don't
have to check syslog when running in debug mode (`-d').
ajacoutot [Mon, 29 Aug 2022 19:14:25 +0000 (19:14 +0000)]
Use rc_configtest.
ajacoutot [Mon, 29 Aug 2022 19:14:02 +0000 (19:14 +0000)]
Introduce the rc_configtest() function.
By default it just returns "0" but can be overriden by rc.d scripts to check
that the daemon configuration is valid when running "start", "reload" and
"restart".
stsp [Mon, 29 Aug 2022 19:01:52 +0000 (19:01 +0000)]
Examine RAID-1C-specific softraid(4) meta-data when checking for
a key disk which is associated with a RAID-1C volume.
ok jsing@, style tweak + ok kn@
kn [Mon, 29 Aug 2022 18:54:43 +0000 (18:54 +0000)]
softraid: make verbose messages -n/nowrite aware
Using installboot(8) in dry-run mode aka. -vn (verbose + nowrite) and first
reading "would install" followed by an "installing" made me uneasy.
Luckily, nothing was written in dry-run mode, it's just that the
softraid specific code fails to honour -n/nowrite.
So make sure it does and pull the printf out of `if (!nowrite)' so we
see the "would install" messages in dry-run mode in the first place.
Output diff for root on CRYPTO softraid on biosboot(8/amd64) to illustrate:
-# installboot -nv sd1
+# ./obj/installboot -nv sd1
would install bootstrap on /dev/rsd1c
using first-stage /usr/mdec/biosboot, second-stage /usr/mdec/boot
sd1: softraid volume with 1 disk(s)
+sd1: would install boot loader on softraid volume
/usr/mdec/boot is 6 blocks x 16384 bytes
-sd0a: installing boot blocks on /dev/rsd0c, part offset 144
+sd0a: would install boot blocks on /dev/rsd0c, part offset 144
master boot record (MBR) at sector 0
partition 3: type 0xA6 offset 64 size
488392001
/usr/mdec/biosboot will be written at sector 64
OK jsing
tb [Mon, 29 Aug 2022 18:54:06 +0000 (18:54 +0000)]
missing period
kn [Mon, 29 Aug 2022 18:42:28 +0000 (18:42 +0000)]
Hook up installboot(8) tests on i386
Passes like amd64 as both use MBR/biosboot(8) at the moment.
tb [Mon, 29 Aug 2022 18:28:35 +0000 (18:28 +0000)]
Simplify load_skiplist()
Instead of copy-pasting valid_uri(), we can call the real thing. That's
also not ideal since we actually check for an FQDN, but it's a bit
simpler.
ok claudio
claudio [Mon, 29 Aug 2022 18:20:32 +0000 (18:20 +0000)]
Adjust rde_decide_test.c since struct aspath changed.
claudio [Mon, 29 Aug 2022 18:19:21 +0000 (18:19 +0000)]
aspath_refs is gone, adjust code
claudio [Mon, 29 Aug 2022 18:18:55 +0000 (18:18 +0000)]
Instead of a global aspath cache copy the aspath attribute per rde_aspath
struct. It uses a bit more memory but improves performance a lot on really
big systems because aspath_get() becomes a very hot function.
OK tb@
martijn [Mon, 29 Aug 2022 18:10:48 +0000 (18:10 +0000)]
Clean up a couple of log lines.
OK tb@
martijn [Mon, 29 Aug 2022 18:05:08 +0000 (18:05 +0000)]
Allow overlapping regions (if subtree claim flag is set) when the backends
are identical.
OK tb@
claudio [Mon, 29 Aug 2022 18:04:51 +0000 (18:04 +0000)]
Use fatal("%s", __func__); instead of fatal("function_name");
OK tb@