openbsd
20 months agoUse EXTRACT_16BITS() in default_print() instead of handrolling it.
claudio [Fri, 3 Mar 2023 13:03:29 +0000 (13:03 +0000)]
Use EXTRACT_16BITS() in default_print() instead of handrolling it.
OK bluhm@

20 months agoEnsure ms_remain is always initialized, similar to what we do in
dtucker [Fri, 3 Mar 2023 10:23:42 +0000 (10:23 +0000)]
Ensure ms_remain is always initialized, similar to what we do in
ssh_packet_write_wait.  bz#2687, from jjelen at redhat.com.

20 months agoCheck for non-NULL before string comparison. From jjelen at redhat.com
dtucker [Fri, 3 Mar 2023 09:48:51 +0000 (09:48 +0000)]
Check for non-NULL before string comparison.  From jjelen at redhat.com
via bz#2687.

20 months agonamservers -> nameservers
jsg [Fri, 3 Mar 2023 08:08:15 +0000 (08:08 +0000)]
namservers -> nameservers

20 months agoguard against getsockname(-1, ...) from Coverity CID 291832
djm [Fri, 3 Mar 2023 05:00:34 +0000 (05:00 +0000)]
guard against getsockname(-1, ...) from Coverity CID 291832

20 months agosome options are not first-match-wins. Mention that there are
djm [Fri, 3 Mar 2023 04:36:20 +0000 (04:36 +0000)]
some options are not first-match-wins. Mention that there are
exceptions at the start of the manpage and label some of them in
the option description.

20 months agoactually print "channeltimeout none" in config dump mode;
djm [Fri, 3 Mar 2023 04:34:49 +0000 (04:34 +0000)]
actually print "channeltimeout none" in config dump mode;
spotted via Coverity CID 405022

20 months agoCheck return values of dup2. Spotted by Coverity, ok djm@
dtucker [Fri, 3 Mar 2023 03:12:24 +0000 (03:12 +0000)]
Check return values of dup2.  Spotted by Coverity, ok djm@

20 months agoUse time_t for x11_refuse_time timeout. We need SSH_TIME_T_MAX for
dtucker [Fri, 3 Mar 2023 02:37:58 +0000 (02:37 +0000)]
Use time_t for x11_refuse_time timeout.  We need SSH_TIME_T_MAX for
this, so move from misc.c to misc.h so it's available.  Fixes a Coverity
warning for 64bit time_t safety, ok djm@

20 months agoCheck return value from fctnl and warn on failure. Spotted by Coverity,
dtucker [Fri, 3 Mar 2023 02:34:29 +0000 (02:34 +0000)]
Check return value from fctnl and warn on failure.  Spotted by Coverity,
ok djm@

20 months agoSimplify the ct Makefile slightly
tb [Thu, 2 Mar 2023 21:17:35 +0000 (21:17 +0000)]
Simplify the ct Makefile slightly

20 months agoClean up the x509 regress make file a little
tb [Thu, 2 Mar 2023 21:15:14 +0000 (21:15 +0000)]
Clean up the x509 regress make file a little

20 months agoRemove a few more unnecessary line continuations
tb [Thu, 2 Mar 2023 21:08:14 +0000 (21:08 +0000)]
Remove a few more unnecessary line continuations

20 months agoNitpick error checks of BN_get_mem_data()
tb [Thu, 2 Mar 2023 21:07:21 +0000 (21:07 +0000)]
Nitpick error checks of BN_get_mem_data()

BN_get_mem_data() returns a non-positive long on error, so assigning
it to a size_t and displaying that in error messages is incorrect.

20 months agoSome more Makefile cosmetics
tb [Thu, 2 Mar 2023 20:45:11 +0000 (20:45 +0000)]
Some more Makefile cosmetics

The verbose evp test actually depends on the evptest binary. Use consistent
spacing and indentation.

20 months agoThe evp_ecx_test no longer needs static linking
tb [Thu, 2 Mar 2023 20:27:54 +0000 (20:27 +0000)]
The evp_ecx_test no longer needs static linking

20 months agoHide the hexdumps behind a verbose flags. Should have been part of
tb [Thu, 2 Mar 2023 20:24:51 +0000 (20:24 +0000)]
Hide the hexdumps behind a verbose flags. Should have been part of
the previous commit.

20 months agoSimplify evp test Makefile.
tb [Thu, 2 Mar 2023 20:22:46 +0000 (20:22 +0000)]
Simplify evp test Makefile.

Make evptest silent by default: these pages of hexdumps are useless noise.
Add a verbose target for debugging.

20 months agoevp_pkey_check: make this test silent on success
tb [Thu, 2 Mar 2023 20:18:40 +0000 (20:18 +0000)]
evp_pkey_check: make this test silent on success

20 months agoRemove a few unnecessary line continuations
tb [Thu, 2 Mar 2023 20:04:42 +0000 (20:04 +0000)]
Remove a few unnecessary line continuations

20 months agorestructure the page into one single list for all routing commands;
jmc [Thu, 2 Mar 2023 17:11:33 +0000 (17:11 +0000)]
restructure the page into one single list for all routing commands;
while there, whack anything either out of date or not useful

joint work with claudio

20 months agoimprove the Nd lines such that the format is consistent for the
jmc [Thu, 2 Mar 2023 17:09:52 +0000 (17:09 +0000)]
improve the Nd lines such that the format is consistent for the
various *d, *conf, *ctl files (where relevant) and simple;

also makes "man -k routing" more useful;

help from claudio and florian
ok claudio florian millert

20 months agosync
deraadt [Thu, 2 Mar 2023 17:08:02 +0000 (17:08 +0000)]
sync

20 months agoNo need to protect exports from SIGHUP, the handler just sets a flag.
millert [Thu, 2 Mar 2023 16:58:43 +0000 (16:58 +0000)]
No need to protect exports from SIGHUP, the handler just sets a flag.
The signal handlers in mountd.c were made safe in rev 1.34 from 2001.
OK bluhm@ kn@

20 months agoWhen parsing %s, the result should be in the local time zone.
millert [Thu, 2 Mar 2023 16:21:51 +0000 (16:21 +0000)]
When parsing %s, the result should be in the local time zone.
Based on a patch from enh@google.  OK tb@

20 months agorad_recv: verify length field in received auth_hdr_t before using it.
millert [Thu, 2 Mar 2023 16:13:57 +0000 (16:13 +0000)]
rad_recv: verify length field in received auth_hdr_t before using it.
Reported by Peter J. Philipp.  OK deraadt@

20 months agoadd arch to Dt
jsg [Thu, 2 Mar 2023 11:56:25 +0000 (11:56 +0000)]
add arch to Dt

20 months agomention eephy(4)
jsg [Thu, 2 Mar 2023 11:49:45 +0000 (11:49 +0000)]
mention eephy(4)
ok jmatthew@

20 months agoRemove SUDO in proxy command wrapper. Anything that needs sudo is
dtucker [Thu, 2 Mar 2023 11:10:27 +0000 (11:10 +0000)]
Remove SUDO in proxy command wrapper.  Anything that needs sudo is
already run by it, and it breaks if root isn't in sudoers.

20 months agomvodog(4) and mvortc(4)
jmatthew [Thu, 2 Mar 2023 10:07:18 +0000 (10:07 +0000)]
mvodog(4) and mvortc(4)

20 months agoEnable mvodog(4) and mvortc(4)
jmatthew [Thu, 2 Mar 2023 09:59:29 +0000 (09:59 +0000)]
Enable mvodog(4) and mvortc(4)

20 months agoAdd mvortc(4), a driver for the RTC on the ARMADA 38x series.
jmatthew [Thu, 2 Mar 2023 09:57:43 +0000 (09:57 +0000)]
Add mvortc(4), a driver for the RTC on the ARMADA 38x series.

ok kettenis@ patrick@

20 months agoAdd mvodog(4), a driver for the watchdog on the ARMADA 38x series.
jmatthew [Thu, 2 Mar 2023 09:56:52 +0000 (09:56 +0000)]
Add mvodog(4), a driver for the watchdog on the ARMADA 38x series.

ok kettenis@ patrick@

20 months agoAdd eephy(4), found on the Turris Omnia's WAN port
jmatthew [Thu, 2 Mar 2023 09:39:45 +0000 (09:39 +0000)]
Add eephy(4), found on the Turris Omnia's WAN port

20 months agoFix breakage on dhgex test.
dtucker [Thu, 2 Mar 2023 08:24:41 +0000 (08:24 +0000)]
Fix breakage on dhgex test.

This was due to the sshd logs being written to the wrong log file.
While there, make save_debug_logs less verbose, write the name of the
tarball to regress.log and use $SUDO to remove the old symlinks (which
shouldn't be needed, but won't hurt).  Initial problem spotted by anton@.

20 months agoQuote grep and log message better.
dtucker [Thu, 2 Mar 2023 08:14:52 +0000 (08:14 +0000)]
Quote grep and log message better.

20 months agoEnsure we always call fclose when writing checkpoints. In the case of
dtucker [Thu, 2 Mar 2023 06:41:56 +0000 (06:41 +0000)]
Ensure we always call fclose when writing checkpoints.   In the case of
an fprintf failure we would not call fclose which would leak the FILE
pointer.  While we're there, try to clean up the temp file on failure.
Spotted by Coverity, ok djm@

20 months agoFix potentially uninitialized use of variable fsb on error.
millert [Wed, 1 Mar 2023 23:27:46 +0000 (23:27 +0000)]
Fix potentially uninitialized use of variable fsb on error.
OK mbuhl@

20 months ago/etc/examples/iked.conf tweaks:
sthen [Wed, 1 Mar 2023 22:45:25 +0000 (22:45 +0000)]
/etc/examples/iked.conf tweaks:

- show a demo of a strong random string for psk, for some types of
configuration psk makes sense. the previous example hinted at.not
using it.

- change the EAP MSCHAPv2 example so that more than one client can
connect (previous used address config but with only a single address not
a pool), and use the newer keywords to show how to route all traffic
from dynamic-ip clients over the tunnel

ok tobhe@

20 months agoRemove old log symlinks before creating new ones. In -portable some
dtucker [Wed, 1 Mar 2023 21:54:50 +0000 (21:54 +0000)]
Remove old log symlinks before creating new ones.  In -portable some
platforms don't like overwriting existing symlinks.

20 months agoBogus full stop.
ajacoutot [Wed, 1 Mar 2023 17:27:45 +0000 (17:27 +0000)]
Bogus full stop.

20 months agoComment out glob for JSON webcrypto tests for now
tb [Wed, 1 Mar 2023 12:34:12 +0000 (12:34 +0000)]
Comment out glob for JSON webcrypto tests for now

Allows test to pass with the old version of the wycheproof-testvectors
package.

20 months agoLink evp/cipher_method_lib.c to the build
tb [Wed, 1 Mar 2023 11:28:30 +0000 (11:28 +0000)]
Link evp/cipher_method_lib.c to the build

ok jsing

20 months agoConvert EVP_CIPHER_meth_dup() to using calloc()
tb [Wed, 1 Mar 2023 11:27:37 +0000 (11:27 +0000)]
Convert EVP_CIPHER_meth_dup() to using calloc()

There is no reason for this to call EVP_CIPHER_meth_new(), as the flags
will be copied a line later anyway. Simplify this.

Requested by jsing

20 months agoMake cipher_method_lib.c compile with LibreSSL
tb [Wed, 1 Mar 2023 11:25:25 +0000 (11:25 +0000)]
Make cipher_method_lib.c compile with LibreSSL

OPENSSL_zalloc() -> calloc(), OPENSSL_free() -> free() and a few assorted
cosmetic tweaks to match our style better.

ok jsing

20 months agoAdd EVP_CIPHER_meth_* prototypes to evp.h
tb [Wed, 1 Mar 2023 11:17:22 +0000 (11:17 +0000)]
Add EVP_CIPHER_meth_* prototypes to evp.h

As usual, this will be guarded by LIBRESSL_INTERNAL || LIBRESSL_NEXT_API
until the next bump.

ok jsing

20 months agoMake the cleanup() method return an int again
tb [Wed, 1 Mar 2023 11:16:06 +0000 (11:16 +0000)]
Make the cleanup() method return an int again

This partially reverts jsing's OpenBSD commit b8185953, but without adding
back the error check that potentialy results in dumb leaks. No cleanup()
method in the wild returns anything but 1. Since that's the signature in
the EVP_CIPHER_meth_* API, we have no choice...

ok jsing

20 months agoFix line wrapping of function pointer arguments
tb [Wed, 1 Mar 2023 11:08:37 +0000 (11:08 +0000)]
Fix line wrapping of function pointer arguments

ok jsing

20 months agoFirst KNF approximation as per knfmt(1)
tb [Wed, 1 Mar 2023 11:07:25 +0000 (11:07 +0000)]
First KNF approximation as per knfmt(1)

ok jsing

20 months agoDrop the EVP_CIPHER_METH_get_* functions
tb [Wed, 1 Mar 2023 11:06:23 +0000 (11:06 +0000)]
Drop the EVP_CIPHER_METH_get_* functions

Nothing interesting uses them. There's a Debian SSH-1 module and
corresponding ncrack bits. That's not reason enough to have this
garbage.

ok jsing

20 months agoAdd RCS tag
tb [Wed, 1 Mar 2023 11:04:17 +0000 (11:04 +0000)]
Add RCS tag

20 months agoRevert OpenSSL commit aa6bb135
tb [Wed, 1 Mar 2023 11:02:25 +0000 (11:02 +0000)]
Revert OpenSSL commit aa6bb135

This reinstates the original license on this file. Don't bother bumping
the copyright year. Nothing interesting has happened in here since the
initial commit.

(There was one interesting commit though: "Don't care openssl_zmalloc()",
which is interesting due to the lack of care, not because it's copyright
worthy)

ok jsing

20 months agolibcrypto: import a copy of OpenSSL 1.1's cmeth_lib.c
tb [Wed, 1 Mar 2023 10:57:08 +0000 (10:57 +0000)]
libcrypto: import a copy of OpenSSL 1.1's cmeth_lib.c

This is the file as of OpenSSL 1.1.1 commit 82dfb986. Call the file
cipher_method_lib.c since the short names in this directory are hard
enough to read. This is a first step towards providing the poorly
named EVP_CIPHER_meth_* API which is needed by some projects because
of EVP_CIPHER opacity.

ok jsing

20 months agoRework logging for the regression tests. Previously we would log to
dtucker [Wed, 1 Mar 2023 09:29:32 +0000 (09:29 +0000)]
Rework logging for the regression tests.  Previously we would log to
ssh.log and sshd.log, but that is insufficient for tests that have more
than one concurent ssh/sshd.

Instead, we'll log to separate datestamped files in a $OBJ/log/ and
leave a symlink at the previous location pointing at the most recent
instance with an entry in regress.log showing which files were created
at each point.  This should be sufficient to reconstruct what happened
even for tests that use multiple instances of each program.  If the test
fails, tar up all of the logs for later analysis.

This will let us also capture the output from some of the other tools
which was previously sent to /dev/null although most of those will be
in future commits.

20 months agoChange fatal() to fatalx() since the errno has no meaning here.
claudio [Wed, 1 Mar 2023 08:17:53 +0000 (08:17 +0000)]
Change fatal() to fatalx() since the errno has no meaning here.
OK tb@

20 months agoKNF, no functional change.
claudio [Wed, 1 Mar 2023 08:15:58 +0000 (08:15 +0000)]
KNF, no functional change.

20 months agofatal out if allocating banner string fails to avoid potential null
dtucker [Tue, 28 Feb 2023 21:31:50 +0000 (21:31 +0000)]
fatal out if allocating banner string fails to avoid potential null
deref later in sscanf.  Spotted by Coverity, ok deraadt@

20 months ago+sync
sthen [Tue, 28 Feb 2023 16:58:36 +0000 (16:58 +0000)]
+sync

20 months agoadd 7.4 fw key
sthen [Tue, 28 Feb 2023 16:12:13 +0000 (16:12 +0000)]
add 7.4 fw key

20 months agoRewrite/simplify BN_from_montgomery_word() and BN_from_montgomery().
jsing [Tue, 28 Feb 2023 12:29:57 +0000 (12:29 +0000)]
Rewrite/simplify BN_from_montgomery_word() and BN_from_montgomery().

Rename BN_from_montgomery_word() to bn_montgomery_reduce() and rewrite it
to be simpler and clearer, moving further towards constant time in the
process. Clean up BN_from_montgomery() in the process.

ok tb@

20 months agoExplicitly skip the json_web* tests now.
tb [Tue, 28 Feb 2023 10:46:27 +0000 (10:46 +0000)]
Explicitly skip the json_web* tests now.

20 months agoAdd a few missing NIDs for new Wycheproof tests.
tb [Tue, 28 Feb 2023 10:45:46 +0000 (10:45 +0000)]
Add a few missing NIDs for new Wycheproof tests.

20 months agoSkip FRP256v1 curve in ECDH tests. We do not support it.
tb [Tue, 28 Feb 2023 10:43:21 +0000 (10:43 +0000)]
Skip FRP256v1 curve in ECDH tests. We do not support it.

20 months agoAdjust default_print() to not run over snapend.
claudio [Tue, 28 Feb 2023 10:04:50 +0000 (10:04 +0000)]
Adjust default_print() to not run over snapend.

Kill default_print_unaligned() and adjust default_print() to also work
with unaligned buffers. There is no need for two functions doing the
same thing.

Pass the right length in nsh_print to default_print(). Fixes on place
that makes tcpdump crash.
Reported by Peter J. Philipp (pjp at delphinusdns dot org)
OK mbuhl@

20 months agoExplicitly ignore return from fchmod similar to other calls to
dtucker [Tue, 28 Feb 2023 08:45:24 +0000 (08:45 +0000)]
Explicitly ignore return from fchmod similar to other calls to
prevent warning.

20 months agoPlug mem leak on globbed ls error path. Spotted by Coverity, ok deraadt@
dtucker [Mon, 27 Feb 2023 22:12:40 +0000 (22:12 +0000)]
Plug mem leak on globbed ls error path. Spotted by Coverity, ok deraadt@

20 months agouse the correct size of the execve syscall stub
deraadt [Mon, 27 Feb 2023 15:00:17 +0000 (15:00 +0000)]
use the correct size of the execve syscall stub

20 months agoCalculate the size of the static (and profiled static) execve syscall stub
deraadt [Mon, 27 Feb 2023 14:59:33 +0000 (14:59 +0000)]
Calculate the size of the static (and profiled static) execve syscall stub
and store it in a const variable for use by crt0.
help from kettenis and miod

20 months agosort VEB and add "rules"; ok stsp
jmc [Mon, 27 Feb 2023 14:53:38 +0000 (14:53 +0000)]
sort VEB and add "rules"; ok stsp

20 months agoAdd missing documentation of veb(4) ioctls to the ifconfig(8) VEB section.
stsp [Mon, 27 Feb 2023 13:30:59 +0000 (13:30 +0000)]
Add missing documentation of veb(4) ioctls to the ifconfig(8) VEB section.

These ifconfig commands are supported by veb(4) but were undocumented:
deladdr flushrule maxaddr rule rulefile static timeout up

As was done before, copy relevant prose from the BRIDGE section.

ok jmc@

20 months agoPass MII flags depending on the phy mode specified in the device tree.
jmatthew [Mon, 27 Feb 2023 09:59:46 +0000 (09:59 +0000)]
Pass MII flags depending on the phy mode specified in the device tree.
With this, the WAN port on the Turris Omnia works.

tested on Turris MOX by kettenis@
ok patrick@

20 months agoTurn off TSO if interface is added to layer 2 devices.
jan [Mon, 27 Feb 2023 09:35:32 +0000 (09:35 +0000)]
Turn off TSO if interface is added to layer 2 devices.

ok bluhm@, claudio@

20 months agoThere is no reason to-be-cleared chunks cannot participate in delayed
otto [Mon, 27 Feb 2023 06:47:54 +0000 (06:47 +0000)]
There is no reason to-be-cleared chunks cannot participate in delayed
freeing; ok tb@

20 months agodrm/i915: Remove __maybe_unused from mtl_info
jsg [Mon, 27 Feb 2023 02:04:12 +0000 (02:04 +0000)]
drm/i915: Remove __maybe_unused from mtl_info

From Lucas De Marchi
44610f4c3093bbce3061b77d37bdf1bed8e379da in linux-6.1.y/6.1.14
fff758698842fb6722be37498d8773e0fb47f000 in mainline linux

20 months agodrm/edid: Fix minimum bpc supported with DSC1.2 for HDMI sink
jsg [Mon, 27 Feb 2023 02:01:38 +0000 (02:01 +0000)]
drm/edid: Fix minimum bpc supported with DSC1.2 for HDMI sink

From Ankit Nautiyal
0deb50618944aed143269214daea0ba2ddf2222d in linux-6.1.y/6.1.14
18feaf6d0784dcba888859109676adf1e0260dfd in mainline linux

20 months agosync
deraadt [Mon, 27 Feb 2023 00:58:38 +0000 (00:58 +0000)]
sync

20 months agoInclude varags types in sys/syscalls.h comment
afresh1 [Mon, 27 Feb 2023 00:18:00 +0000 (00:18 +0000)]
Include varags types in sys/syscalls.h comment

Separated with the existing "..." requested by deraadt@
OK gnezdo@

20 months agoclockintr: add a kernel-facing API
cheloha [Sun, 26 Feb 2023 23:00:42 +0000 (23:00 +0000)]
clockintr: add a kernel-facing API

We need an API for creating, scheduling, and rescheduling clock
interrupts.

- Add struct clockintr, a schedulable clock interrupt callback.

- Add clockintr_establish().  Allocates a new struct clockintr and
  binds it to the given clockintr_queue.

- Add clockintr_expiration().  Returns the clockintr's absolute
  expiration uptime.

- Add clockintr_nsecuptime().  Returns the clockintr's parent queue's
  cached uptime.  Using a cached timestamp is cheaper than calling
  nsecuptime(9) repeatedly when we don't absolutely need to.

- Add clockintr_schedule().  Schedules the clock interrupt to run at
  or after the given absolute uptime.

- Add clockintr_advance().  Reschedules the clock interrupt in the
  future on the given period relative to the parent queue's cached
  uptime.

With the above pieces in place we can push most of the scheduling
code for hardclock()/statclock()/schedclock() from clockintr_dispatch()
into the wrapper functions clockintr_hardclock(), clockintr_statclock(),
and clockintr_schedclock().  These wrappers are temporary.  I don't
want to muck up the wrapped functions while things are still moving
around.

For the moment these interfaces are internal to kern_clockintr.c.  In
a later patch we will move the prototypes into <sys/clockintr.h> so
anyone can use them.  We first need to add a data structure for
sorting the clockintr structs.  We also need to add a mutex to
clockintr_queue to allow arbitrary threads to safely manipulate clock
interrupts established on other CPUs.

Shown on hackers@.  Tweaked by mlarkin@.

ok mlarkin@, "no objections" kettenis@

20 months agoAdd a few missing bounds checks when processing terminal escape sequences.
miod [Sun, 26 Feb 2023 15:09:53 +0000 (15:09 +0000)]
Add a few missing bounds checks when processing terminal escape sequences.
Without them, the kernel could be made to crash or reboot after receiving some
specially crafted terminal escape sequences.

Reported by David Leadbeater (dgl, dgl dot cx)

20 months agoDefragment mbufs in the tx path to work around a (not fully understood)
kettenis [Sun, 26 Feb 2023 13:28:12 +0000 (13:28 +0000)]
Defragment mbufs in the tx path to work around a (not fully understood)
issue on the StarFive JH7100 SoC where packets spanning multiple mbufs
are corrupted.  Makes ethernet work reliably on the StarFive VisionFive 1
board.

ok patrick@

20 months agoRK3588 support.
kettenis [Sun, 26 Feb 2023 12:39:48 +0000 (12:39 +0000)]
RK3588 support.

ok patrick@

20 months agoRK3588 support.
kettenis [Sun, 26 Feb 2023 12:39:07 +0000 (12:39 +0000)]
RK3588 support.

ok patrick@

20 months agoModern Rockchip SoCs, such as the RK356x and RK3588, use a different
kettenis [Sun, 26 Feb 2023 12:37:58 +0000 (12:37 +0000)]
Modern Rockchip SoCs, such as the RK356x and RK3588, use a different
register layout where the upper 16 bits decide which of the lower 16 bits
apply when writing to a register.  Handle this new variant.

ok patrick@

20 months agoUse separate lines instead of semicolons.
bcook [Sat, 25 Feb 2023 15:39:40 +0000 (15:39 +0000)]
Use separate lines instead of semicolons.

macOS aarch64 assembly dialect treats ; as comment instead of a newline

ok tb@, jsing@

20 months agoregen
mvs [Sat, 25 Feb 2023 09:56:17 +0000 (09:56 +0000)]
regen

20 months agoUnlock select(2), pselect(2), poll(2) and ppoll(2).
mvs [Sat, 25 Feb 2023 09:55:46 +0000 (09:55 +0000)]
Unlock select(2), pselect(2), poll(2) and ppoll(2).

The assertion within tsleep(9) was relaxed to allow calls on special
`nowake' channel without kernel lock held. So the sisguspend(2) like
cases "select(0, NULL, NULL, NULL, NULL)" and "poll(NULL, 0, INFTIM)"
should not trigger it. Commit reverted diff back.

ok claudio@

20 months agoChange to use the default bsd.prog.mk "install" target.
aoyama [Fri, 24 Feb 2023 23:36:10 +0000 (23:36 +0000)]
Change to use the default bsd.prog.mk "install" target.

This also brings to install boot.8 man page correctly.

ok miod@

20 months agoTry to warn about syscall() possibly being deleted from libc in the
deraadt [Fri, 24 Feb 2023 16:30:19 +0000 (16:30 +0000)]
Try to warn about syscall() possibly being deleted from libc in the
future.  The ports team is already running around with axes and mops,
but don't worry such an action won't happen quickly.
with tb

20 months agoswitch mips64 ld.lld to execute-only, in case someone uses it
deraadt [Fri, 24 Feb 2023 16:28:26 +0000 (16:28 +0000)]
switch mips64 ld.lld to execute-only, in case someone uses it
(the mips64 default is still ld.bfd)

20 months agodisable jump tables by default on sparc64, in prep for xonly by default
deraadt [Fri, 24 Feb 2023 16:27:17 +0000 (16:27 +0000)]
disable jump tables by default on sparc64, in prep for xonly by default
ok miod

20 months agoDo not held the vm_map lock while flushing pages in msync(2) and madvise(2).
mpi [Fri, 24 Feb 2023 15:17:48 +0000 (15:17 +0000)]
Do not held the vm_map lock while flushing pages in msync(2) and madvise(2).

Mark the VM map as busy instead to prevent any sibling thread to request an
exclusive version of the vm_map.  This is necessary to let any PG_BUSY page,
found in the UVM vnode object, to be released by a sibling in the middle of
a page-fault.

Note: the page-fault handler releases & re-grab a shared version of the
vm_map lock and expect it to be available to make progress.

Prevent a 3-Threads deadlock between msync(2), page-fault and mmap(2).  The
deadlock reported on bugs@ by many occured as follow:

..ThreadA faults & grabs the shared `vmmaplk' then release it before calling
..uvn_get() which might sleep to allocate pages and mark them as PG_BUSY.

..Once the lock is released, threadB calls uvn_flush().  It sees at least a
..PG_BUSY page and sleeps on the `vmmaplk' waiting for threadA to un-busy
..the page.

..At the same time threadC asked for an exclusive version of the lock and
..sleeps until all reader are done with it.  This prevents threadA to
..acquire a shared-version of the lock and finish the page fault.

This issue is similar to NetBSD's PR #56952 and the fix is from Chuck Silvers.

Tested by many on bugs@, thanks!

ok kettenis@

20 months agoRemove dangerous user-settable "addr" variable from MI boot loader, and
miod [Thu, 23 Feb 2023 19:48:21 +0000 (19:48 +0000)]
Remove dangerous user-settable "addr" variable from MI boot loader, and
only compile tty-related code (stty command, tty variable) on platforms
where it makes sense for the boot loader to control it, rather than the
PROM/firmware/whatever.

20 months agoIntroduce X509_get0_uids() accessor function
job [Thu, 23 Feb 2023 18:12:32 +0000 (18:12 +0000)]
Introduce X509_get0_uids() accessor function

By introducing X509_get0_uids(), one can add RPKI profile compliance
checks to conform the absence of the issuerUID and subjectUID.

OK tb@ jsing@

20 months agoopenssl speed: avoid bad plural
tb [Thu, 23 Feb 2023 14:55:54 +0000 (14:55 +0000)]
openssl speed: avoid bad plural

Remedy a case of twitching eyes caused by seeing "Doing ... rsa's for 10s".
If this breaks someone's script, so be it.

ok jsing sthen

20 months agoMake bootloader 'time' command work correctly on luna88k.
aoyama [Thu, 23 Feb 2023 13:28:38 +0000 (13:28 +0000)]
Make bootloader 'time' command work correctly on luna88k.

Now the correct date is displayed instead of January 1, 1970.

Tested on LUNA-88K2 and nono emulator by me.

"make sense" miod@

20 months agorpki-client: simplify parse_load_crl_from_mft()
tb [Thu, 23 Feb 2023 13:06:42 +0000 (13:06 +0000)]
rpki-client: simplify parse_load_crl_from_mft()

Now that we always inspect both locations if necessary, we can do away
with the loop and simply have the only caller call twice. Removes a
bunch of clever complexity and streamlines the code quite a bit.

ok claudio job

20 months agoWhen parsing MFT the CRL referenced by the MFT is loaded and verified at
claudio [Thu, 23 Feb 2023 09:50:40 +0000 (09:50 +0000)]
When parsing MFT the CRL referenced by the MFT is loaded and verified at
the same time. So in case of a valid crl pass the CRL filename as entity
message to the parent process together with the MFT. This way the MFT and
CRL end up both in the valid cache even if some files in the MFT are missing.
On severe errors (like X.509 verify errors) the CRL is not moved since it
is not considered valid.
With and OK job@, tb@

20 months agoUse explicit .text instead of .previous to please Windows/MinGW on amd64
tb [Thu, 23 Feb 2023 08:55:44 +0000 (08:55 +0000)]
Use explicit .text instead of .previous to please Windows/MinGW on amd64

ok miod

20 months agoFix up the .rodata segment's name for Windows as well.
tb [Thu, 23 Feb 2023 08:49:02 +0000 (08:49 +0000)]
Fix up the .rodata segment's name for Windows as well.

Here we need .rdata with some alignment goo. Fortunately, this was already
present for .pdata and .xdata, so the change is easy. Also, this is a code
path that doesn't affect OpenBSD at all.

ok jsing miod

20 months agoFix ethertype for NSH. RFC 8300 states ethertype 0x894F has been
mbuhl [Thu, 23 Feb 2023 08:37:03 +0000 (08:37 +0000)]
Fix ethertype for NSH. RFC 8300 states ethertype 0x894F has been
allocated for NSH.
Found by bluhm.
ok dlg.