openbsd
2 years agoRemove the single part string for DS1339, since that is only required on
mglocker [Thu, 20 Oct 2022 10:35:35 +0000 (10:35 +0000)]
Remove the single part string for DS1339, since that is only required on
sparc64 because OpenFirmware doesn't support the <vendor>,<part> compatible
pattern.  We don't expect this chip to turn up on sparc64.

Suggested and ok kettenis@

2 years agoampintc(4) is specifically for GIC v1/v2
jsg [Thu, 20 Oct 2022 08:52:22 +0000 (08:52 +0000)]
ampintc(4) is specifically for GIC v1/v2

2 years agoadd manual page for Arm GIC v3/v4 driver
jsg [Thu, 20 Oct 2022 08:45:39 +0000 (08:45 +0000)]
add manual page for Arm GIC v3/v4 driver

2 years agoremove file no longer present in unbound 1.17.0
sthen [Thu, 20 Oct 2022 08:28:00 +0000 (08:28 +0000)]
remove file no longer present in unbound 1.17.0

2 years agomerge unbound 1.17.0
sthen [Thu, 20 Oct 2022 08:26:14 +0000 (08:26 +0000)]
merge unbound 1.17.0

2 years agoimport unbound 1.17.0, ok florian
sthen [Thu, 20 Oct 2022 08:25:16 +0000 (08:25 +0000)]
import unbound 1.17.0, ok florian

2 years agoLink rust-openssl to regress
tb [Thu, 20 Oct 2022 07:38:05 +0000 (07:38 +0000)]
Link rust-openssl to regress

2 years agoProvide a harness driving rust-openssl's regress tests
tb [Thu, 20 Oct 2022 07:33:14 +0000 (07:33 +0000)]
Provide a harness driving rust-openssl's regress tests

rust-openssl is an integral part of the Rust ecosystem and more than a
dozen ports, including lang/rust itself, depend on it. We need to ensure
that it keeps working with LibreSSL.

If the rust and rust-openssl-tests packages are installed, create a cargo
workspace under obj/ that compiles and runs the rust-openssl regress tests
much like what is done for the openssl-ruby tests. This expands our regress
coverage: for instance, this would have caught the broken ASN.1 indefinite
length encoding caused by asn1/tasn_enc.c r1.25.

Positive feedback beck jsing semarie
Testing and ok anton

2 years agoDisplay the correct recipient in a Received: header with one recipient.
millert [Thu, 20 Oct 2022 01:16:04 +0000 (01:16 +0000)]
Display the correct recipient in a Received: header with one recipient.
If multiple recipients are specified but only one is valid, use the
first entry in the recipient list for the Received: header, not the
value from the last "RCPT TO:" command (which could be invalid).
From Chris Waddey

2 years agoExclude /tmp/*.shm files from /tmp cleaning in daily(8); removing them
sthen [Wed, 19 Oct 2022 21:23:31 +0000 (21:23 +0000)]
Exclude /tmp/*.shm files from /tmp cleaning in daily(8); removing them
interferes with programs using shm_open(3) which uses them as backing
files.

Problem pointed out by jeremy@ in relation to PostgreSQL.
Suggestion/ok tb@.

2 years agoDrop support for $rcexec; people should now use the rc_exec function.
ajacoutot [Wed, 19 Oct 2022 21:04:45 +0000 (21:04 +0000)]
Drop support for $rcexec; people should now use the rc_exec function.

prodded by jsg@

2 years agoRemove unused setfd member from struct audio_hw_if
kn [Wed, 19 Oct 2022 19:59:06 +0000 (19:59 +0000)]
Remove unused setfd member from struct audio_hw_if

All consumers now use C99 struct init and none of them sets `.setfd'.

OK ratchov miod

2 years agoUse C99 struct init for struct audio_hw_if
kn [Wed, 19 Oct 2022 19:14:16 +0000 (19:14 +0000)]
Use C99 struct init for struct audio_hw_if

This audio(9) struct will lose a member, but drivers init their struct quite
inconsistently, most pre-C99 style.

Use C99 style everywhere, to get rid of all annoying differences and allow
for easy member removals/additions:
- don't change current order of members
- no explicit NULL members
- no comments or blank lines
- trailing comma in last member line

GENERIC.MP builds fine with this on arm64, amd64, i386 and sparc64.

macppc and alpha build-tested by miod
OK ratchov miod

2 years agoReplace "newfs/fsck_ext2fs" with "newfs/msdos -t ext2fs", constify
kn [Wed, 19 Oct 2022 19:08:25 +0000 (19:08 +0000)]
Replace "newfs/fsck_ext2fs" with "newfs/msdos -t ext2fs", constify

OK miod

2 years agoDocument sigaltstack restrictions on OpenBSD.
deraadt [Wed, 19 Oct 2022 18:29:36 +0000 (18:29 +0000)]
Document sigaltstack restrictions on OpenBSD.
mandoc suggestions & help from jmc

2 years agoRemove audio(9) setfd() stub
kn [Wed, 19 Oct 2022 15:34:02 +0000 (15:34 +0000)]
Remove audio(9) setfd() stub

necsb(4/luna88k) is the only driver that "implements" it... through EIO.

Remove it so setfd can be removed from struct audio_hw_if.

Prodded by ratchov
OK aoyama

2 years agoConstify global tables only used in lookups, OK ratchov
kn [Wed, 19 Oct 2022 09:11:26 +0000 (09:11 +0000)]
Constify global tables only used in lookups, OK ratchov

2 years agoGet rid of useless/confusing subshell
kn [Wed, 19 Oct 2022 08:24:14 +0000 (08:24 +0000)]
Get rid of useless/confusing subshell

Other function, same stuff like r1.1210 except here there `>/dev/null 2>&1'
hammer is required to silence the ls(1) test.

The make_dev() call is no longer silenced now but does not print on stdout
anyway;  if making the device fails we'd like to know.

Otherwise if probing the disk fails it continues to be silenced.

(cvs diff -w -U1)
|@@ -2311,3 +2311,2 @@ is_rootdisk() {
|
|- (
|  make_dev $_d
|@@ -2322,6 +2321,6 @@ is_rootdisk() {
|  umount /mnt
|- fi
|+ fi >/dev/null 2>&1
|  rm -f /dev/{r,}$_d?
|+
|  return $_rc
|- ) >/dev/null 2>&1
| }

OK halex

2 years agoConstify audio_hw_if struct
kn [Wed, 19 Oct 2022 07:59:26 +0000 (07:59 +0000)]
Constify audio_hw_if struct

The only driver with a non-const audio(9) struct.

OK gnezdo

2 years agoConstify string tables
kn [Wed, 19 Oct 2022 07:57:49 +0000 (07:57 +0000)]
Constify string tables

Each only used one for a printf() call in *_attach().
Seen while tweaking their *_hw_if struct.

OK gnezdo ratchov

2 years agoAdd support for the DS1339 RTC, like found on the PiJuice.
mglocker [Tue, 18 Oct 2022 16:07:59 +0000 (16:07 +0000)]
Add support for the DS1339 RTC, like found on the PiJuice.

From Michal Mynar -- Thanks!

ok deraadt@

2 years agoNo longer match on "apple,cluster-cpufreq" compatible string.
kettenis [Tue, 18 Oct 2022 15:12:13 +0000 (15:12 +0000)]
No longer match on "apple,cluster-cpufreq" compatible string.

ok miod@, kn@

2 years agoRemove references to four definitions that tb@ deleted in x509.h rev. 1.89
schwarze [Tue, 18 Oct 2022 14:55:19 +0000 (14:55 +0000)]
Remove references to four definitions that tb@ deleted in x509.h rev. 1.89
on Jan 10, 2022: X509_EX_V_INIT X509_EX_V_NETSCAPE_HACK
X509_EXT_PACK_STRING X509_EXT_PACK_UNKNOWN.

Mark BN_set_params and BN_get_params as deprecated, unused,
and intentionally undocumented.

2 years agoCopy port to proxyport since the sting may point into memory that is
claudio [Tue, 18 Oct 2022 14:03:39 +0000 (14:03 +0000)]
Copy port to proxyport since the sting may point into memory that is
freed.

Should fix https://github.com/rpki-client/rpki-client-portable/issues/74
Reported by Ben Castricum
OK tb@

2 years agoSwitch from up/down time to time of last change.
claudio [Tue, 18 Oct 2022 12:28:36 +0000 (12:28 +0000)]
Switch from up/down time to time of last change.

Having metrics depend on session state makes reporting more complex.
This now reports the number of seconds a session was up or down.
OK tb@

2 years agoInitalize last_updown in init_peer() so that it is reported correctly
claudio [Tue, 18 Oct 2022 12:24:51 +0000 (12:24 +0000)]
Initalize last_updown in init_peer() so that it is reported correctly
for peers that never managed to establish a connection.
OK tb@

2 years agoAdd definitions for runtime services related to EFI variables and system
kettenis [Tue, 18 Oct 2022 10:17:56 +0000 (10:17 +0000)]
Add definitions for runtime services related to EFI variables and system
reset.

ok krw@

2 years agoFix some spelling errors
job [Tue, 18 Oct 2022 09:30:29 +0000 (09:30 +0000)]
Fix some spelling errors

Thanks Marco D'Itri for spotting them

OK claudio@

2 years agoRemove unused AUDIO_PROP_{MMAP,INDEPENDENT}
kn [Tue, 18 Oct 2022 08:22:18 +0000 (08:22 +0000)]
Remove unused AUDIO_PROP_{MMAP,INDEPENDENT}

AUDIO_PROP_FULLDUPLEX is the only audio(9) in use, the other two died with
commit 1cf2860827c8ca659d8097d8da94a5ae5b888c53
Author: ratchov <ratchov@openbsd.org>
Date:   Thu Jun 25 06:43:45 2015 +0000

Reimplement the audio driver in a simpler way, removing unused/unusable
functionality. Same API and ABI except for the removed bits and no
behaviour change for programs using libsndio. With help from armani@
and mpi@, thanks.

but remained defined and set in drivers.

and the following merely moved them when they were dead code already:

commit 9215aa3dfad387bca877a805534df6dcfe8722eb
Author: ratchov <ratchov@openbsd.org>
Date:   Wed Aug 31 07:22:43 2016 +0000

    Delete unused ioctls and associated macros. Move macros that are still
    used internally by low-level drivers from sys/audioio.h to
    dev/audio_if.h instead of deleting them.

None of this is used in base or ports;  codesearch.debian.net only shows
AUDIO_PROP_{CAPTURE,PLAYBACK} in firefox-esr, mozjs and cubeb.

ratchov points out that audio_if.h and audioio.h are private interfaces
and the codesearch shows SunOS and NetBSD bits (#ifdef'd out on OpenBSD).

OK ratchov

2 years agoDocument and report mpii(4) RAID 1E as such
kn [Tue, 18 Oct 2022 07:04:20 +0000 (07:04 +0000)]
Document and report mpii(4) RAID 1E as such

At least the built-in controller on sparc64 T4-2 machines supports 1E from
which OpenBSD boots just fine, but bioctl(8) reports it as RAID 10:

mpii0 at pci15 dev 0 function 0 "Symbios Logic SAS2008" rev 0x03: msi
mpii0: Solana On-Board, firmware 9.0.0.0 IR, MPI 2.0
scsibus1 at mpii0: 834 targets
sd0 at scsibus1 targ 0 lun 0: <LSI, Logical Volume, 3000> naa.600508e0000000006cd1dcd59022a30a
sd0: 713824MB, 512 bytes/sector, 1461911552 sectors
root on sd0a (efde5b2c6ab7b8ac.a) swap on sd0b dump on sd0b

# bioctl mpii0
Volume      Status               Size Device
    mpii0 0 Online       748498714112 sd0     RAID10
  0 Online       500107861504 0:2.0   noencl <ATA CT500MX500SSD1>
  1 Online       500107861504 0:1.0   noencl <ATA CT500MX500SSD1>
  2 Online       500107861504 0:0.0   noencl <ATA CT500MX500SSD1>

mpii(4) simply munged 1E into 10.
Report it as 0x1E just like softraid(4) RAID 1C is 0x1C internally:

# ./obj/bioctl mpii0 | grep RAID
    mpii0 0 Online       748498714112 sd0     RAID1E

OK jsing

2 years agoHoist common Volume, Status, Size and Device columns in format strings
kn [Tue, 18 Oct 2022 06:56:42 +0000 (06:56 +0000)]
Hoist common Volume, Status, Size and Device columns in format strings

Only the RAID level itself with level specific values in the end differs.

OK jsing

2 years agoImplement uncached mappings on the StarFive JH7100 SoC, where the hardware
kettenis [Mon, 17 Oct 2022 19:51:54 +0000 (19:51 +0000)]
Implement uncached mappings on the StarFive JH7100 SoC, where the hardware
provides allows bypassing the L2 cache by using a physical address alias.

ok miod@

2 years agoConvert more drivers to use todr_attach(). The quality of the RTC is
kettenis [Mon, 17 Oct 2022 19:09:46 +0000 (19:09 +0000)]
Convert more drivers to use todr_attach().  The quality of the RTC is
set such that "discrete" RTC chips are preferred over RTCs integrated on
a SoC.

ok deraadt@, miod@

2 years agoStore errors that result from leaf certificate verification.
jsing [Mon, 17 Oct 2022 18:56:54 +0000 (18:56 +0000)]
Store errors that result from leaf certificate verification.

In the case that a verification callback is installed that tells the
verifier to continue when a certificate is invalid (e.g. expired),
any error resulting from the leaf certificate verification is not stored
and made available post verification, resulting in an incorrect error being
returned.

Also perform leaf certificate verification prior to adding the chain, which
avoids a potential memory leak (as noted by tb@).

Issue reported by Ilya Shipitsin, who encountered haproxy regress failures.

ok tb@

2 years agoFix "map" OpenFirmware call. It does not return a value according to the
kettenis [Mon, 17 Oct 2022 18:55:20 +0000 (18:55 +0000)]
Fix "map" OpenFirmware call.  It does not return a value according to the
IEEE 1275 specification.  This should fix booting on machines that would
fail with something like:

OF_map_phys(3fe44000,8192,fed58000,-1) failed
no space for symbol table
Program terminated

Based on a diff provided by Harald Gutch (hgutch@netbsd).  Also see
NetBSD PR#56829.

There were (and still are) some questions about whether this diff breaks
the blade1.5k. However the failure in question might have been hardware
related and subsequent testing of the equivalent kernel diff (which
was just committed) was successful.  So committing this in the hope it
sticks to ease testing.

ok miod@

2 years agoFix "map" OpenFirmware call. It does not return a value according to the
kettenis [Mon, 17 Oct 2022 18:49:06 +0000 (18:49 +0000)]
Fix "map" OpenFirmware call.  It does not return a value according to the
IEEE 1275 specification.

Based on a diff provided by Harald Gutch (hgutch@netbsd).  Also see
NetBSD PR#56829.

ok miod@

2 years agoRevise expire callback regress to use chains with expired certificates.
jsing [Mon, 17 Oct 2022 18:44:36 +0000 (18:44 +0000)]
Revise expire callback regress to use chains with expired certificates.

Rather than using X509_STORE_CTX_set_time() (which is resulting all
certificates in the chain being treated as expired), use chains that have
an expired leaf or expired intermediate. This triggers a different code
path, which is currently mishandled (and hence failing).

Also ensure that the resulting error and error depth match what we expect
them to be.

2 years agoEnsure that verification results in the expected error and error depth.
jsing [Mon, 17 Oct 2022 18:36:52 +0000 (18:36 +0000)]
Ensure that verification results in the expected error and error depth.

Improve verification regress and ensure that the legacy or modern
verification completes with the expected error and error depth.

2 years agoAvoid potential divide by zero in BIO_dump_indent_cb()
jsing [Mon, 17 Oct 2022 18:26:41 +0000 (18:26 +0000)]
Avoid potential divide by zero in BIO_dump_indent_cb()

Passing an indent value of 67 results in DUMP_WIDTH_LESS_IDENT returning a
value of zero, which is promptly used for division. Likewise, passing a
value larger than 67 results in a negative value being returned.

Prevent this by limiting indent to 64 (which matches OpenSSL's current
behaviour), as well as ensuring that dump_width is > 0.

Should fix oss-fuzz #52464 and #52467.

ok miod@ tb@

2 years agoUnbreak ASN.1 indefinite length encoding.
jsing [Mon, 17 Oct 2022 18:03:15 +0000 (18:03 +0000)]
Unbreak ASN.1 indefinite length encoding.

In r1.25 of tasn_enc.c a check was added to ensure that asn1_ex_i2c()
returned the same value on both calls, however in the ndef case the len
variable gets changed between calls. Keep a copy of the original value to
test against.

Issue reported by niklas, who encountered a test failure in rust-openssl.

ok miod@ tb@

2 years agoSHOW_METRICS for the actions enum. Just to match the rest.
claudio [Mon, 17 Oct 2022 16:51:36 +0000 (16:51 +0000)]
SHOW_METRICS for the actions enum. Just to match the rest.

2 years agoDocument /metrics endpoint and use bgpctl show metrics as command.
claudio [Mon, 17 Oct 2022 15:42:19 +0000 (15:42 +0000)]
Document /metrics endpoint and use bgpctl show metrics as command.
OK tb@

2 years agoUse metrics as the command name and document show metrics.
claudio [Mon, 17 Oct 2022 15:04:12 +0000 (15:04 +0000)]
Use metrics as the command name and document show metrics.
OK tb@

2 years agoChange pru_abort() return type to the type of void and make pru_abort()
mvs [Mon, 17 Oct 2022 14:49:01 +0000 (14:49 +0000)]
Change pru_abort() return type to the type of void and make pru_abort()
optional.

We have no interest on pru_abort() return value. We call it only from
soabort() which is dummy pru_abort() wrapper and has no return value.

Only the connection oriented sockets need to implement (*pru_abort)()
handler. Such sockets are tcp(4) and unix(4) sockets, so remove existing
code for all others, it doesn't called.

ok guenther@

2 years agoAdd /metrics endpoint which outputs stats in openmetrics format.
claudio [Mon, 17 Oct 2022 13:23:31 +0000 (13:23 +0000)]
Add /metrics endpoint which outputs stats in openmetrics format.

This uses `bgpctl show metric` to produce the payload.
OK tb@

2 years agoImplement openmetric output via bgpctl show metric command
claudio [Mon, 17 Oct 2022 12:01:19 +0000 (12:01 +0000)]
Implement openmetric output via bgpctl show metric command

This adds most of the generic code to output the metrics with labels
and implements some basic metrics. The code works but metrics may still
change.

OK tb@

2 years agoPreserve marked pane when renumbering windows.
nicm [Mon, 17 Oct 2022 10:59:42 +0000 (10:59 +0000)]
Preserve marked pane when renumbering windows.

2 years agoImprove the clickpad/touchpad detection in hidmt.
bru [Sun, 16 Oct 2022 20:17:08 +0000 (20:17 +0000)]
Improve the clickpad/touchpad detection in hidmt.

If the HID descriptors don't provide a HUD_BUTTON_TYPE property, hidmt
should treat all devices as clickpads if they report a "clickpad button",
or don't report to have both a left and right external button.

2 years agoFix a bug in the initialization mechanism of wsmouse.
bru [Sun, 16 Oct 2022 18:23:44 +0000 (18:23 +0000)]
Fix a bug in the initialization mechanism of wsmouse.

The CONFIGURED flag, which indicates that first-time initialization
has been completed, must be set immediately after the first call to
wstpad_configure.  Otherwise, passing touchpad parameters to the
initialization function has no effect for some of them.

2 years agoRather than marking MAP_STACK on entries for sigaltstack() [2 days ago],
deraadt [Sun, 16 Oct 2022 16:27:02 +0000 (16:27 +0000)]
Rather than marking MAP_STACK on entries for sigaltstack() [2 days ago],
go back to the old approach: using a new anon mapping because it removes
any potential gadgetry pre-placed in the region (by making it zero).  But
also bring in a few more validation checks beyond contigious mapping -- it
must not be a syscall region, and the protection must be precisely RW.
This does allow sigaltstack() to shoot zero'd MAP_STACK non-immutable regions
into the main stack area (which will soon be immutable).  I am not sure we
can keep reinforce immutable on the region after we do stack (like maybe
determine this while doing the validation entry walk?)
Sadly, continued support for sigaltstack() does require selecting the guessed
best compromise.
ok kettenis

2 years agoRather than marking MAP_STACK on entries for sigaltstack() [2 days ago],
deraadt [Sun, 16 Oct 2022 16:16:37 +0000 (16:16 +0000)]
Rather than marking MAP_STACK on entries for sigaltstack() [2 days ago],
go back to the old approach: using a new anon mapping because it removes
any potential gadgetry pre-placed in the region (by making it zero).  But
also bring in a few more validation checks beyond contigious mapping -- it
must not be a syscall region, and the protection must be precisely RW.
This does allow sigaltstack() to shoot zero'd MAP_STACK non-immutable regions
into the main stack area (which will soon be immutable).  I am not sure we
can keep reinforce immutable on the region after we do stack (like maybe
determine this while doing the validation entry walk?)
Sadly, continued support for sigaltstack() does require selecting the guessed
best compromise.
ok kettenis

2 years agoAdd the guts for EFI runtime services support on amd64. This will be used
kettenis [Sun, 16 Oct 2022 15:03:39 +0000 (15:03 +0000)]
Add the guts for EFI runtime services support on amd64.  This will be used
in the future to implement support for things like EFI variables.

ok krw@ (a few others ok'ed earlier incarnations of this diff)

2 years agodon't use | operator where || was intended
jsg [Sun, 16 Oct 2022 13:33:10 +0000 (13:33 +0000)]
don't use | operator where || was intended
ok gnezdo@ kn@ martijn@

2 years agoAdd new failing read/signal test
kn [Sun, 16 Oct 2022 12:34:13 +0000 (12:34 +0000)]
Add new failing read/signal test

^C does not abort `read < /dev/zero', instead it read(2)s indefinitely,
one null byte at a time;  bash and ksh93 from ports abort as expected.

Use the new timeout(1) $PROG trick to send ^C after 0.1s, but also
rely on it's -k for the final SIGKILL to stop the busy-looping process.

./th's `time-limit: 1' prints "test timed out (limit of 1 seconds)" but
leaves the process running.

2 years agoAdd new trap/errexit/signal test simulating interactive usage
kn [Sun, 16 Oct 2022 10:44:06 +0000 (10:44 +0000)]
Add new trap/errexit/signal test simulating interactive usage

First try add capturing use cases like the bin/ksh/main.c r1.52 one:
"[...] we would not run the signal trap if,
for example, ^C was pressed and -e was set."

With so many different factors (errexit?, receiving (special) signals,
traps themselves failing/returing non-zero, running child processes?, etc.)
it is very easy to miss subtle behaviour changes during scripting...

2 years agomove/rename usr1 test to new signal block, tweak other name
kn [Sun, 16 Oct 2022 10:19:02 +0000 (10:19 +0000)]
move/rename usr1 test to new signal block, tweak other name

2 years agoAlways pass the test program as PROG env var, fix synopsis
kn [Sun, 16 Oct 2022 08:49:03 +0000 (08:49 +0000)]
Always pass the test program as PROG env var, fix synopsis

The ./th perl script always runs -p prog (KSH in Makefile) as the shell,
but cannot signal it other than the optional SIGKILL after `time-limit'.

Implementing time-related signal handling in ./th seems overkill, so always
pass the program as PROG in the environment so it can wrap itself, e.g.
description:
simluate interrupting a script
stdin:
timeout --signal SIGINT --preserve-status -- 1s $PROG -c '
actual test script getting ^C after one second...
'

Avoiding hard-coded programs in tests with PROG allows testing different
shells through `make KSH=/path/to/sh' without changing or adding shell
specific tests.

While here, make -p and -s as mandatory in usage as ./th `die's if they're
not passed (allowing to always just pass -p's argument as PROG).

2 years agoLeave installurl handling to syspatch(8)
kn [Sun, 16 Oct 2022 08:47:20 +0000 (08:47 +0000)]
Leave installurl handling to syspatch(8)

When upgrading to releases, the installer fills rc.firsttime(8) with
a syspatch(8) snippet possibly displaying available patches.

That snippet itself checks for a release version as well as an existent
installurl(5) file as a precondition for syspatch, see the diff below.

syspatch, however, has code to fallback to cdn.o.o without a valid URL:

286 _MIRROR=$(while read _line; do _line=${_line%%#*}; [[ -n ${_line} ]] &&
287 print -r -- "${_line}"; done </etc/installurl | tail -1) 2>/dev/null
288 [[ ${_MIRROR} == @(file|ftp|http|https)://* ]] ||
289 _MIRROR=https://cdn.openbsd.org/pub/OpenBSD
290 _MIRROR="${_MIRROR}/syspatch/${_KERNV[0]}/$(machine)"

Furthermore, the installer actively sets a working URL if needed, in the
same finish_up() function shortly before placing the syspatch snippet:

2842 # Create /etc/installurl if it does not yet exist.
2843 if [[ ! -f /mnt/etc/installurl ]]; then
2844 echo "${INSTALL_URL:-https://cdn.openbsd.org/pub/OpenBSD}" \
2845 >/mnt/etc/installurl
2846 fi

So one of the following is true for installurl:
1. exists but has no valid URL, then syspatch falls back to cdn.o.o
2. exists and has a  valid URL, then syspatch uses that
3. does not exist so the installer creates it with cdn.o.o, see 2.

In the unlikely case that the install/upgrade finishes, i.e. installurl
does exist, but gets removed or truncated before rc.firsttime runs, the
existing check would actually prevent syspatch from running even though
it copes with such files.

So just remove the useless check.

OK aja

2 years agoChange function definitions using the identifier-list form used in the
jsg [Sun, 16 Oct 2022 01:22:39 +0000 (01:22 +0000)]
Change function definitions using the identifier-list form used in the
1st edition of Kernighan and Ritchie's The C Programming Language, to
that of the parameter-type-list form described in the ANSI X3.159-1989
standard.

In ISO/IEC 9899:2023 drafts, there is only one form of function definition.
"N2432 Remove support for function definitions with identifier lists".

ok kettenis@

2 years agoConvert remaining I2C RTC drivers to use todr_attach().
kettenis [Sat, 15 Oct 2022 18:22:53 +0000 (18:22 +0000)]
Convert remaining I2C RTC drivers to use todr_attach().
These all get a quality of 1000 since these are supposed to be battery
backed and almost certainly what the hardware designers want us to use.

ok mglocker@, jsg@

2 years agoreplace ewprintf("") calls with eerase(): no functional difference.
op [Sat, 15 Oct 2022 17:01:14 +0000 (17:01 +0000)]
replace ewprintf("") calls with eerase(): no functional difference.

ok florian@

2 years agofix comments wrt. pending ksh fixes
kn [Sat, 15 Oct 2022 15:29:45 +0000 (15:29 +0000)]
fix comments wrt. pending ksh fixes

2 years ago.Oc -> .Op in previous;
jmc [Sat, 15 Oct 2022 15:18:15 +0000 (15:18 +0000)]
.Oc -> .Op in previous;

2 years agoansi
jsg [Sat, 15 Oct 2022 14:58:54 +0000 (14:58 +0000)]
ansi

2 years agoDo not throw away errno.
florian [Sat, 15 Oct 2022 13:27:45 +0000 (13:27 +0000)]
Do not throw away errno.

Pointed out in the pref64 code, which was copied from here, by kn.

2 years agoImplement RFC 8781 PREF64 router advertisement option.
florian [Sat, 15 Oct 2022 13:26:15 +0000 (13:26 +0000)]
Implement RFC 8781 PREF64 router advertisement option.

With this clients can learn the presence and used prefix for Network
Address and Protocol Translation between IPv6 and IPv4 (NAT64).

Apparently there is support in mobile devices as well as in macOS.

This option, together with the the dhcp "IPv6-only preferred"
option (108) enables the Customer-side transLATor (CLAT) on macOS so
IPv4 literals can be used in IPv6-only networks.

Input & OK kn

2 years agoansi
jsg [Sat, 15 Oct 2022 10:12:12 +0000 (10:12 +0000)]
ansi

2 years agotypo in comment: Funtion -> Function
op [Sat, 15 Oct 2022 09:54:29 +0000 (09:54 +0000)]
typo in comment: Funtion -> Function

2 years agoansi
jsg [Sat, 15 Oct 2022 08:41:18 +0000 (08:41 +0000)]
ansi

2 years agoansi
jsg [Sat, 15 Oct 2022 08:04:02 +0000 (08:04 +0000)]
ansi

2 years agoremove one of the debug messages
deraadt [Sat, 15 Oct 2022 05:56:01 +0000 (05:56 +0000)]
remove one of the debug messages

2 years agoDuring the MAP_STACK introduction in 2018, sigaltstack() became a
deraadt [Sat, 15 Oct 2022 03:23:50 +0000 (03:23 +0000)]
During the MAP_STACK introduction in 2018, sigaltstack() became a
problem because haphazard use could shoot holes in the address space
(changing permissions, providing opportunities for pivoting, etc). I
tried to write a diff to convert the address space correctly but did
not understand enough about map entries, so instead we mapped new
memory over top of the existing object.  Placing a new mapping becomes
unfeasible with the upcoming mimmutable model, so here is code that
adds MAP_STACK to the region.  It will only do so for a contigiously
mapped region that is non-syscall with permission RW, otherwise it
returns an error.
Food for thought: If we know the object isn't service by an object,
we should consider zero'ing the region, to block pre-pivot placement?
ok kettenis

2 years agoadd two new errexit/trap tests, tweak wording
kn [Fri, 14 Oct 2022 23:51:16 +0000 (23:51 +0000)]
add two new errexit/trap tests, tweak wording

both pass in bash and ksh93 from ports.
our ksh fails for now, so mark them as expected fail.

2 years agosync
sthen [Fri, 14 Oct 2022 23:01:16 +0000 (23:01 +0000)]
sync

2 years agoadd two new errexit/trap tests
kn [Fri, 14 Oct 2022 22:56:13 +0000 (22:56 +0000)]
add two new errexit/trap tests

both behave the same with our ksh, bash and ksh93 from ports.

2 years agospace required between macro and punctuation;
jmc [Fri, 14 Oct 2022 21:44:06 +0000 (21:44 +0000)]
space required between macro and punctuation;
while here, wrap long line;

2 years agoPass boot device information from bootloader to kernel.
aoyama [Fri, 14 Oct 2022 20:53:18 +0000 (20:53 +0000)]
Pass boot device information from bootloader to kernel.

This brings the default root device is the same one of the kernel
specified by bootloader, rather than NVRAM setting, like other
architectures.

"looks good to me" miod@, tested on LUNA-88K2 and nono (LUNA-88K
capable emulator) by me.

2 years agoUpdate to 2022egtz from https://github.com/JodaOrg/global-tz
millert [Fri, 14 Oct 2022 18:35:19 +0000 (18:35 +0000)]
Update to 2022egtz from https://github.com/JodaOrg/global-tz
Major changes:
 o Jordan and Syria switch from +02/+03 with DST to year-round +03.

2 years agoAdd RCS markers
tb [Fri, 14 Oct 2022 17:17:13 +0000 (17:17 +0000)]
Add RCS markers

2 years agoRevert kn's Makefile surgery. It no longer does what it was supposed
tb [Fri, 14 Oct 2022 17:09:43 +0000 (17:09 +0000)]
Revert kn's Makefile surgery. It no longer does what it was supposed
to do and I'm still not clear what it was supposed to fix.

2 years agoFix botched D_SUNCYLCHECK+D_VENDOR check from r1.321.
krw [Fri, 14 Oct 2022 16:36:36 +0000 (16:36 +0000)]
Fix botched D_SUNCYLCHECK+D_VENDOR check from r1.321.

D_VENDOR lives in d_flags, not d_secpercyl.

Makes resizing a partition more likely to respect cylinder rounding
on sparc64.

2 years agoAdd an agentx_retry call.
martijn [Fri, 14 Oct 2022 15:26:58 +0000 (15:26 +0000)]
Add an agentx_retry call.
If a session, agentcaps, region, index, or object doesn't properly open
because of an error returned by the AgentX master it remained closed until
a reconnect. This new function call walks the tree and tries to reopen
everything in a closed state.

OK sthen@

2 years agoDon't call agentx_reset on errors returned by the AgentX master.
martijn [Fri, 14 Oct 2022 15:20:33 +0000 (15:20 +0000)]
Don't call agentx_reset on errors returned by the AgentX 
There is no reason to assume that a reset of the connection and a retry
will solve the problem and could cause reconnect loops.

Found while playing with context in vmd in combination with snmpd(8)
instead of net-snmpd.

OK sthen@

2 years agoNo point in luna88k setting D_VENDOR since all actual uses are
krw [Fri, 14 Oct 2022 13:22:57 +0000 (13:22 +0000)]
No point in luna88k setting D_VENDOR since all actual uses are
inside #ifdef SUN_CYLCHECK or #ifdef SUN_AAT0 blocks in
disklabel(8), neither of which are defined for luna88k.

ok miod@

2 years agoDocument missing cases of variable substitution
kn [Fri, 14 Oct 2022 11:26:19 +0000 (11:26 +0000)]
Document missing cases of variable substitution

Feedback OK op

2 years agoadd configtest
kn [Fri, 14 Oct 2022 11:02:43 +0000 (11:02 +0000)]
add configtest

OK florian

2 years agoadd configtest
kn [Fri, 14 Oct 2022 10:41:43 +0000 (10:41 +0000)]
add configtest

OK florian

2 years agoError out if the out secret wasn't properly initialized
tb [Fri, 14 Oct 2022 06:56:33 +0000 (06:56 +0000)]
Error out if the out secret wasn't properly initialized

Calling HKDF_expand() with a length of 0 happens to succeed due to a quirk
in the API inherited from BoringSSL.  This hides caller-side errors during
development.  Error out to catch such mistakes early on.

ok jsing

2 years agoremove the unsightly plural from Nd:
jmc [Fri, 14 Oct 2022 06:46:52 +0000 (06:46 +0000)]
remove the unsightly plural from Nd:
audio files manipulation tool -> audio file manipulation tool

2 years agosome macro fixes, mostly Cm -> Ic;
jmc [Fri, 14 Oct 2022 06:43:26 +0000 (06:43 +0000)]
some macro fixes, mostly Cm -> Ic;
from josiah frentsos

2 years agoThe HTTP endpoint used for the redirect chain started to unconditionally
anton [Fri, 14 Oct 2022 05:44:42 +0000 (05:44 +0000)]
The HTTP endpoint used for the redirect chain started to unconditionally
respond with the HTTP protocol in the response location header although
HTTPS is being used in the corresponding request. Flag the test as
expected to fail for now.

2 years agoput the malloc_readonly struct into the "openbsd.mutable" section, so
deraadt [Fri, 14 Oct 2022 04:38:39 +0000 (04:38 +0000)]
put the malloc_readonly struct into the "openbsd.mutable" section, so
that the kernel and ld.so will know not to mark it immutable.  malloc
handles the read/write transitions by itself.

2 years agocontrom terminql -> controlling terminal;
jmc [Thu, 13 Oct 2022 21:37:05 +0000 (21:37 +0000)]
controm terminql -> controlling terminal;

2 years agoProperly implement disestablishing LPI interrupts. Fixes a crash when using
kettenis [Thu, 13 Oct 2022 18:34:56 +0000 (18:34 +0000)]
Properly implement disestablishing LPI interrupts.  Fixes a crash when using
virtio(4) in combination with agintc(4).

ok jsg@, patrick@

2 years agouse correct type with sizeof
jsg [Thu, 13 Oct 2022 09:09:28 +0000 (09:09 +0000)]
use correct type with sizeof
ok djm@

2 years agoAdd (minimal) support for the RK3568 PCIe controller. This relies on
kettenis [Thu, 13 Oct 2022 09:07:26 +0000 (09:07 +0000)]
Add (minimal) support for the RK3568 PCIe controller.  This relies on
the firmware to do most of the hardware initialization; the driver
basically only sets up the address translation unit to match the
configuration specified in the device tree.

ok patrick@

2 years agoMake comment match the code.
tb [Thu, 13 Oct 2022 08:38:53 +0000 (08:38 +0000)]
Make comment match the code.

Since rnd.c r1.127, there is only one stirring polynomial.

2 years agoImplement support for MBIs. MBIs are message based interrupts that can be
kettenis [Thu, 13 Oct 2022 07:04:53 +0000 (07:04 +0000)]
Implement support for MBIs.  MBIs are message based interrupts that can be
used as an alternative implementation for MSIs on hardware that doesn't
implement an ITS (or where the ITS is broken such as on the Rochchip
RK3566 SoC).

Based on an earlier WIP diff from patrick@; I just cleaned it up a bit.

ok patrick@

2 years agoAdd client certificate authentication and optional SASL EXTERNAL bind,
jmatthew [Thu, 13 Oct 2022 04:55:33 +0000 (04:55 +0000)]
Add client certificate authentication and optional SASL EXTERNAL bind,
which allows the client to bind as the subject of the certificate in cases
where the directory doesn't implicitly do that.

The client certificate is configured with 'certfile' and 'keyfile'
directives, and SASL EXTERNAL bind is configured with the 'bindext'
directive.

ok tb@

2 years agoAll of ROA, MFT, ASPA, and RSC define their respective 'version' field
job [Thu, 13 Oct 2022 04:43:32 +0000 (04:43 +0000)]
All of ROA, MFT, ASPA, and RSC define their respective 'version' field
in ASN.1 as following: "version [0] INTEGER DEFAULT 0,". Each object
profile preamble contains "DEFINITIONS EXPLICIT TAGS ::=".

We didn't bump into any issue yet, because all Signed Objects are at
version 0, which means the field is entirely omitted (including the tag,
be it implicit or explicit). (From X.690 section 11.5: "The encoding of
a set value or a sequence value shall not include an encoding for any
component value which is equal to its default value.")

OK tb@