openbsd
22 months agospelling
deraadt [Sun, 18 Dec 2022 23:41:17 +0000 (23:41 +0000)]
spelling

22 months agodocument BIO_FLAGS_MEM_RDONLY
schwarze [Sun, 18 Dec 2022 22:27:10 +0000 (22:27 +0000)]
document BIO_FLAGS_MEM_RDONLY

22 months agodocument BIO_set_retry_read(3), BIO_set_retry_write(3),
schwarze [Sun, 18 Dec 2022 21:45:47 +0000 (21:45 +0000)]
document BIO_set_retry_read(3), BIO_set_retry_write(3),
BIO_set_retry_special(3), BIO_clear_retry_flags(3), BIO_get_retry_flags(3),
and the BIO_FLAGS_* constants

22 months agodocument the interaction with BIO_dup_chain(3)
schwarze [Sun, 18 Dec 2022 20:24:52 +0000 (20:24 +0000)]
document the interaction with BIO_dup_chain(3)

22 months agonew manual page BIO_dup_chain(3)
schwarze [Sun, 18 Dec 2022 19:35:36 +0000 (19:35 +0000)]
new manual page BIO_dup_chain(3)

22 months agocannot try the boot.data unmap until all the ld.script are commited, and
deraadt [Sun, 18 Dec 2022 19:33:11 +0000 (19:33 +0000)]
cannot try the boot.data unmap until all the ld.script are commited, and
fixed to identify the region correctly.

22 months agocorrect the prototypes of BIO_get_conn_ip(3) and BIO_get_conn_int_port(3);
schwarze [Sun, 18 Dec 2022 19:15:38 +0000 (19:15 +0000)]
correct the prototypes of BIO_get_conn_ip(3) and BIO_get_conn_int_port(3);
from Richard Levitte via OpenSSL commit 0e474b8b in the 1.1.1 branch,
which is still under a freee license

22 months agoUnify RSSI check
kn [Sun, 18 Dec 2022 18:56:38 +0000 (18:56 +0000)]
Unify RSSI check

Two spots in ifconfig print the signal strength, one for the "ieee80211: "
line and one for each SSID in scan output.

Only the former checks nr_rssi, which is not needed as nr_max_rssi alone
indicates whether the driver reports signal strength in percentage or dBm.

Zap the nr_rssi check to simplify;  "worst case" we display 0% or 0dBm
instead of nothing.

Feedback OK stsp

22 months agoadd Czechia as an alternative for Czech Republic
daniel [Sun, 18 Dec 2022 18:02:00 +0000 (18:02 +0000)]
add Czechia as an alternative for Czech Republic

22 months agoregen
daniel [Sun, 18 Dec 2022 17:42:56 +0000 (17:42 +0000)]
regen

22 months agoadd two transmeta devices
daniel [Sun, 18 Dec 2022 17:42:23 +0000 (17:42 +0000)]
add two transmeta devices

According to the "Efficeon BIOS Programmers Guide", the Efficeon
processor has a virtual north bridge that can communicate with the
south bridge over HyperTransport (device 0x0060) and with the
graphics controller over an AGP bridge (device 0x0061).

ok jsg@

22 months agodocument BIO_number_read(3) and BIO_number_written(3)
schwarze [Sun, 18 Dec 2022 17:40:55 +0000 (17:40 +0000)]
document BIO_number_read(3) and BIO_number_written(3)

22 months agoRevert previous as it doesn't create additional lo(4) anymore
kn [Sun, 18 Dec 2022 15:52:52 +0000 (15:52 +0000)]
Revert previous as it doesn't create additional lo(4) anymore

Reported by Andreas Bartelt on bugs@

22 months agoDo not save bootdev and boothowto when invalid value has passed.
aoyama [Sun, 18 Dec 2022 13:18:36 +0000 (13:18 +0000)]
Do not save bootdev and boothowto when invalid value has passed.

This occurs the kernel has booted from old boot loader or directly
booted by command line parameter on emulator.

Tested by LUNA-88K2 and nono emulator.

22 months agoPrevent detaching the boot volume
kn [Sun, 18 Dec 2022 13:10:08 +0000 (13:10 +0000)]
Prevent detaching the boot volume

bioctl(8)'s -d has no sanity checks and happily "deletes" any volume,
whether currently in use or not.

For now, refuse to detach the boot volume as a (too) simple safety guard,
until proper logic around mounted file systems on top is implemented.

Found the hard way through "bioctl -d sd1" with sd1 hosting /, after which
it took both fsck(8) and installboot(8) from a miniroot USB to recover.

regress/sys/dev/softraid also triggers it if root is on softraid.

OK claudio op jsing

22 months agonc: update regress after recent changes
tb [Sun, 18 Dec 2022 12:53:50 +0000 (12:53 +0000)]
nc: update regress after recent changes

22 months agonc: skip connection info on failed or skipped udptest()
tb [Sun, 18 Dec 2022 12:53:18 +0000 (12:53 +0000)]
nc: skip connection info on failed or skipped udptest()

In udp mode, nc would always print that the connected succeeded
independently of whether that was actually the case. Don't do that.

idea/ok mpf

22 months agonc: do not test the connection in non-interactive mode
tb [Sun, 18 Dec 2022 12:51:10 +0000 (12:51 +0000)]
nc: do not test the connection in non-interactive mode

The connection test writes four X to the socket, which corrupts data
that we may want to pipe into nc. So don't do that if stdin is not a
tty but still do it in scan mode, this is needed according to chris.

based on a diff by and ok mpf

22 months agonc: clean up and simplify connection_infO()
tb [Sun, 18 Dec 2022 12:48:28 +0000 (12:48 +0000)]
nc: clean up and simplify connection_infO()

ok mpf as part of a larger diff

22 months agonc: pass protocol name to connection_info()
tb [Sun, 18 Dec 2022 12:47:31 +0000 (12:47 +0000)]
nc: pass protocol name to connection_info()

Avoids repeated use of ternary operator on globals.

22 months agonc: factor printing of connection info into a function
tb [Sun, 18 Dec 2022 12:45:34 +0000 (12:45 +0000)]
nc: factor printing of connection info into a function

This simply moves a chunk of code in this spaghetti mess into its own
function with minimal changes.

idea from a diff by mpf

22 months agoacme-client: rename cc to sign_len in op_sign()
tb [Sun, 18 Dec 2022 12:39:59 +0000 (12:39 +0000)]
acme-client: rename cc to sign_len in op_sign()

requested by jsing

22 months agoacme-client: fix openssl includes in acctproc.c
tb [Sun, 18 Dec 2022 12:35:26 +0000 (12:35 +0000)]
acme-client: fix openssl includes in acctproc.c

We don't do PEM or random in here, but we use BN, EC, ECDSA, so include
the relevant headers. errno.h was also missing.

22 months agoacme-client: check EC signature length
tb [Sun, 18 Dec 2022 12:31:57 +0000 (12:31 +0000)]
acme-client: check EC signature length

Make sure the size_t containing EC signature length is not truncated
when passing it to d2i_ECDSA_SIG() as a long. This won't happen, but
documents API quirks...

requested by jsing

22 months agoacme-client: simplify elliptic curve signatures
tb [Sun, 18 Dec 2022 12:27:58 +0000 (12:27 +0000)]
acme-client: simplify elliptic curve signatures

We can get the correct size of the signature using EVP_PKEY_bits() which
uses the order instead of the (strictly speaking incorrect) degree. Grab
the (r, s) out of the ECDSA signature with ECDSA_SIG_get0_{r,s}(), which
is a saner interface than EVP_SIG_get0(). Finally, do the zero padding
using BN_bn2binpad() which is simpler than the currently rather fiddly
solution.

ok jsing

22 months agoacme-client: switch op_sign() to EVP_DigestSign()
tb [Sun, 18 Dec 2022 12:22:30 +0000 (12:22 +0000)]
acme-client: switch op_sign() to EVP_DigestSign()

EVP_DigestSign() is a bit more ergonomic than the old EVP_Sign* family,
it takes size_t instead of int and and it also allows allocating the
memory needed instead of relying on some weird estimate. This again gets
rid of a few stupid else if.

ok jsing

22 months agoacme-client: simplify op_thumbprint()
tb [Sun, 18 Dec 2022 12:13:11 +0000 (12:13 +0000)]
acme-client: simplify op_thumbprint()

We can EVP_Digest() into an array on the stack rather than doing a long
dance and song with lots of ugly else if.

ok jsing

22 months agoacme-client: inline a confusing and useless define
tb [Sun, 18 Dec 2022 12:08:49 +0000 (12:08 +0000)]
acme-client: inline a confusing and useless define

22 months agoacme-client: encode unexpected SANs before printing
tb [Sun, 18 Dec 2022 12:04:55 +0000 (12:04 +0000)]
acme-client: encode unexpected SANs before printing

If a SAN isn't configured, it could be anything, so make printing it safe
using strvisx(). If it is configured but duplicate, printing it should be
fine, so don't bother. This removes two XXX added in the previous commit.

ok florian

22 months agoregen
kettenis [Sun, 18 Dec 2022 10:29:53 +0000 (10:29 +0000)]
regen

22 months agoAdd Union Memory NVMe devices.
kettenis [Sun, 18 Dec 2022 10:29:28 +0000 (10:29 +0000)]
Add Union Memory NVMe devices.

ok jsg@

22 months agoDisable the keyboard on the Samsung Galaxy Book Go until we can fix the
mglocker [Sun, 18 Dec 2022 10:00:53 +0000 (10:00 +0000)]
Disable the keyboard on the Samsung Galaxy Book Go until we can fix the
resulting interrupt storm.  It's causing bad system performance, and breaks
the installer.

22 months agoDo not try to create physical interfaces
kn [Sun, 18 Dec 2022 05:51:14 +0000 (05:51 +0000)]
Do not try to create physical interfaces

vifscreate() always creates all virtual interfaces up-front.

To check whether a given interface exists, ifstart() uses ifcreate()
which tries to create nonexistent ones.

Virtual ones are guaranteed to be present and physical ones cannot be
created, so replace the ifcreate() call with a simpler ifconfig test and
clarify the comment.

OK martijn afresh1

22 months agoUse volatile sig_atomic_t for flag set in signal handler
tb [Sun, 18 Dec 2022 00:22:07 +0000 (00:22 +0000)]
Use volatile sig_atomic_t for flag set in signal handler

22 months agoSwitch to using BN_zero() instead of BN_zero_ex()
tb [Sat, 17 Dec 2022 23:41:29 +0000 (23:41 +0000)]
Switch to using BN_zero() instead of BN_zero_ex()

22 months agoMove benchmark target up a bit and mark it phony
tb [Sat, 17 Dec 2022 22:31:10 +0000 (22:31 +0000)]
Move benchmark target up a bit and mark it phony

22 months agoZap some whitespace
tb [Sat, 17 Dec 2022 22:30:39 +0000 (22:30 +0000)]
Zap some whitespace

22 months agoMerge documentation of UI_null() from OpenSSL 1.1
tb [Sat, 17 Dec 2022 22:23:31 +0000 (22:23 +0000)]
Merge documentation of UI_null() from OpenSSL 1.1

jsing doesn't like it, but it's better than nothing.

ok jsing

22 months agoDocument BIO_set_flags(3), BIO_clear_flags(3), BIO_test_flags(3),
schwarze [Sat, 17 Dec 2022 22:21:24 +0000 (22:21 +0000)]
Document BIO_set_flags(3), BIO_clear_flags(3), BIO_test_flags(3),
and BIO_get_flags(3).

22 months agoLink ui_null.c to build
tb [Sat, 17 Dec 2022 22:01:29 +0000 (22:01 +0000)]
Link ui_null.c to build

22 months agoPrepare to provide UI_null()
tb [Sat, 17 Dec 2022 21:59:39 +0000 (21:59 +0000)]
Prepare to provide UI_null()

xmlsec needs this, nothing else. Our linkers link libxmlsec1-openssl,
only warns and since nothing uses this library in ports, this wasn't
noticed for a long time.

Reported by Thomas Mitterfellner

ok jsing

22 months agosync
deraadt [Sat, 17 Dec 2022 19:59:03 +0000 (19:59 +0000)]
sync

22 months agoProvide regress coverage for BN shift functions.
jsing [Sat, 17 Dec 2022 17:18:46 +0000 (17:18 +0000)]
Provide regress coverage for BN shift functions.

Provide regress coverage for BN_lshift1(), BN_rshift1(), BN_lshift() and
BN_rshift(), along with basic benchmarking functionality (run via
'make benchmark').

22 months agoRevise cipher list regress coverage of SSL_set_security_level().
jsing [Sat, 17 Dec 2022 16:05:28 +0000 (16:05 +0000)]
Revise cipher list regress coverage of SSL_set_security_level().

A SSL_set_security_level() call was added to the cipher list regress, which
expects a failure - however, it should succeed and fails for a completely
unrelated reason. Rework this regress so that it actually passes and tests
for the expected behaviour.

22 months agoProvide BN_zero()/BN_one() as functions and make BN_zero() always succeed.
jsing [Sat, 17 Dec 2022 15:56:25 +0000 (15:56 +0000)]
Provide BN_zero()/BN_one() as functions and make BN_zero() always succeed.

BN_zero() is currently implemented using BN_set_word(), which means it can
fail, however almost nothing ever checks the return value. A long time
ago OpenSSL changed BN_zero() to always succeed and return void, however
kept BN_zero as a macro that calls a new BN_zero_ex() function, so that
it can be switched back to the "can fail" version.

Take a simpler approach - change BN_zero()/BN_one() to functions and make
BN_zero() always succeed. This will be exposed in the next bump, at which
point we can hopefully also remove the BN_zero_ex() function.

ok tb@

22 months agoadd arch to Dt;
jmc [Sat, 17 Dec 2022 14:53:16 +0000 (14:53 +0000)]
add arch to Dt;

22 months agoacme-client: fix SAN-handling insanity
tb [Sat, 17 Dec 2022 13:53:38 +0000 (13:53 +0000)]
acme-client: fix SAN-handling insanity

The revoke process, which does a lot more than revoking a cert, wants to
know the SANs in the cert to be revoked or renewed and check them against
the ones configured in the config file.

To find out which ones are, it prints the SAN extension to a BIO using
X509V3_EXT_print(), slurps that into a buffer, tokenizes the undocumented
output string and plucks out the "DNS:" names. This is reminiscent of
node's hilarious CVE-2021-44532 and on about the same level of crazy, but
fortunately not security relevant.

Get the SAN extension as a GENERAL_NAMES from libcrypto, then we have an
actual data structure to work with, which allows us to access the DNS names
without problems. This simplifies things quite a bit, but the actual logic
in this file remains unmodified. Be careful about ASN1_IA5STRINGs and do
not assume they are C strings.

Tested by florian, millert, Renaud Allard, thanks!

ok florian jsing

22 months agoregen after minherit(2) unlock
kn [Sat, 17 Dec 2022 13:45:00 +0000 (13:45 +0000)]
regen after minherit(2) unlock

22 months agoUnlock minherit(2)
kn [Sat, 17 Dec 2022 13:42:59 +0000 (13:42 +0000)]
Unlock minherit(2)

struct uvm_map's .addr is protected by the map's lock and .{min,max}_offset
are immutable.

uvm_map_inherit() locks the VM map upon entry, sets the desired inheritance
mode for the given address range (validated outside the lock) and unlocks
the map itself.

fork(2), i.e. uvm_mapent_forkcopy(), first locks both old and new maps and
then copies entries over as per the inheritance type.

futex(2), another user of struct vm_map_entry's .inheritance member, also
locks the map accordingly.

OK mpi

22 months agoX509_check_purpose.3: incorporate feedback from jsing
tb [Sat, 17 Dec 2022 12:48:53 +0000 (12:48 +0000)]
X509_check_purpose.3: incorporate feedback from jsing

22 months agoaplefuse(4)
kettenis [Sat, 17 Dec 2022 12:02:00 +0000 (12:02 +0000)]
aplefuse(4)

22 months agoAdd aplefuse(4), a driver for the eFuses on Apple Silicon SoCs.
kettenis [Sat, 17 Dec 2022 11:56:44 +0000 (11:56 +0000)]
Add aplefuse(4), a driver for the eFuses on Apple Silicon SoCs.

ok patrick@

22 months agoMake nvmem_read_cell() and nvmem_write_cell() work for hardware that
kettenis [Sat, 17 Dec 2022 11:54:32 +0000 (11:54 +0000)]
Make nvmem_read_cell() and nvmem_write_cell() work for hardware that
requires word-sized access.

ok patrick@

22 months agoIn bio.h rev. 1.54, jsing@ and tb@ provided BIO_callback_fn_ex(3),
schwarze [Fri, 16 Dec 2022 23:56:57 +0000 (23:56 +0000)]
In bio.h rev. 1.54, jsing@ and tb@ provided BIO_callback_fn_ex(3),
BIO_set_callback_ex(3), BIO_get_callback_ex(3), and BIO_callback_fn(3).
Document them, in part by merging from the OpenSSL 1.1.1 branch,
which is still under a free license,
but heavily tweaked by me, in particular:
* mention that BIO_set_callback_arg(3) is misnamed;
* keep our more detailed explanation of the "ret" argument;
* make the list of callback invocations more readable;
* and update the HISTORY section.

22 months agoqcpdc(4)'s establish routine needs to return the wrapped cookie, not the
patrick [Fri, 16 Dec 2022 18:08:08 +0000 (18:08 +0000)]
qcpdc(4)'s establish routine needs to return the wrapped cookie, not the
cookie it received from establishing the interrupt.

22 months agoDocument extension caching of X509_check_purpose()
tb [Fri, 16 Dec 2022 18:02:28 +0000 (18:02 +0000)]
Document extension caching of X509_check_purpose()

The overwhelming majority of callers of X509_check_purpose() in our tree
pass a purpose of -1. In this case X509_check_purpose() acts as a wrapper
of x509v3_cache_extensions() which makes sanity checks like non-negativity
of ASN.1 integers or canonicity of RFC 3779 extensions as well as checking
uniqueness of extensions.

from schwarze who beat an initial diff of mine into shape

22 months agozap double space and needless line break
kn [Fri, 16 Dec 2022 17:57:39 +0000 (17:57 +0000)]
zap double space and needless line break

22 months agodrop a total of 93 trailing spaces from three lines
tb [Fri, 16 Dec 2022 17:47:34 +0000 (17:47 +0000)]
drop a total of 93 trailing spaces from three lines

22 months agoadd a CAVEATS section warning the user to not create cycles;
schwarze [Fri, 16 Dec 2022 16:02:17 +0000 (16:02 +0000)]
add a CAVEATS section warning the user to not create cycles;
OK tb@

22 months agotop(1): always recount number of online CPUs
cheloha [Fri, 16 Dec 2022 15:54:27 +0000 (15:54 +0000)]
top(1): always recount number of online CPUs

If hw.smt is toggled while top(1) is running in "combined" mode the
CPU count on the CPU state line is incorrect.

We always need to recount the number of online CPUs.

22 months agoPrevent KASSERT in iwm(4) if firmware image is missing or corrupt.
stsp [Fri, 16 Dec 2022 13:49:35 +0000 (13:49 +0000)]
Prevent KASSERT in iwm(4) if firmware image is missing or corrupt.

Same fix as for iwx(4) in CVS commit YakAvDYHWiUF3c4m, r1.113 if_iwx.c.
ok deraadt, mpi

22 months agoRevert BIO_push(3) cycle prevention (bio_lib.c rev. 1.42).
schwarze [Fri, 16 Dec 2022 13:41:55 +0000 (13:41 +0000)]
Revert BIO_push(3) cycle prevention (bio_lib.c rev. 1.42).

jsing@ worries that cycle prevention might increase risk because
software that is not checking return values (and indeed, not checking
is likely common in practice) might silently behave incorrectly
with cycle prevention whereas without, it will likely either crash
right away through infinite recursion or at least hang in an infinite
loop when trying to use the cyclic chain, in both cases making it
likely that the bug will be found and fixed.

Besides, tb@ points out that BIO_set_next(3) ought to behave as
similarly as possible to BIO_push(3), but adding cycle prevention
to BIO_set_next(3) would be even less convincing because that
function does not provide a return value, encouraging users to
expect that it will always succeed.  While a safe idiom for checking
the success of BIO_set_next(3) could easily be designed, let's be
realistic: application software would be highly unlikely to pick up
such an idiom.

22 months agoDowngrade riscv64-specific LTO error to a warning
jca [Fri, 16 Dec 2022 12:06:23 +0000 (12:06 +0000)]
Downgrade riscv64-specific LTO error to a warning

Error happens when mixing some PIC and non-PIC code in an LTO build/link

  ld: error: linking module flags 'SmallDataLimit': IDs have conflicting values in '<REDACTED>.o' and 'ld-temp.o'

and affects a few ports now.  Issue reported upstream where the proposed
fix uses llvm::Module::Min, which we don't have and would require
a backport.  For now, work around this issue by downgrading to
a warning, which should have the intended effect in most cases (use the
value of the first module, which is smaller than the defaults value used
by ld-temp.o).

ok kettenis@

22 months agoDo not escape tabs in output (iTerm2 needs them). GitHub issue 3414.
nicm [Fri, 16 Dec 2022 08:22:05 +0000 (08:22 +0000)]
Do not escape tabs in output (iTerm2 needs them). GitHub issue 3414.

22 months agoMake U+FE0F VARIATION SELECTOR-16 change the width from 1 to 2. GitHub
nicm [Fri, 16 Dec 2022 08:19:58 +0000 (08:19 +0000)]
Make U+FE0F VARIATION SELECTOR-16 change the width from 1 to 2. GitHub
issue 3409.

22 months agoAdd send-keys -K to handle keys directly as if typed (so look up in key
nicm [Fri, 16 Dec 2022 08:13:40 +0000 (08:13 +0000)]
Add send-keys -K to handle keys directly as if typed (so look up in key
table). GitHub issue 3361.

22 months agoMention that scp uses the SFTP protocol and remove reference to
djm [Fri, 16 Dec 2022 07:13:22 +0000 (07:13 +0000)]
Mention that scp uses the SFTP protocol and remove reference to
legacy flag. Spotted by, feedback and ok jmc@

22 months agoClear signal mask early in main(); sshd may have been started with
djm [Fri, 16 Dec 2022 06:56:47 +0000 (06:56 +0000)]
Clear signal mask early in main(); sshd may have been started with
one or more signals masked (sigprocmask(2) is not cleared on fork/exec)
and this could interfere with various things, e.g. the login grace timer.

Execution environments that fail to clear the signal mask before running
sshd are clearly broken, but apparently they do exist.

Reported by Sreedhar Balasubramanian; ok dtucker@

22 months agoadd -X to usage();
jmc [Fri, 16 Dec 2022 06:52:48 +0000 (06:52 +0000)]
add -X to usage();

22 months agoPrioritize lladdr over name/unit in hostname.if processing
afresh1 [Fri, 16 Dec 2022 04:04:25 +0000 (04:04 +0000)]
Prioritize lladdr over name/unit in hostname.if processing

When needed, lladdr is more precise and enduring.

Suggested by deraadt@
Many improvments and OK kn@

22 months agoadd a -X option to both scp(1) and sftp(1) to allow control over
djm [Fri, 16 Dec 2022 03:40:03 +0000 (03:40 +0000)]
add a -X option to both scp(1) and sftp(1) to allow control over
some SFTP protocol knobs: the copy buffer length and the number of
inflight requests, both of which are used during upload/download.

Previously these could be controlled in sftp(1) using the -b/-R options.
This makes them available in both SFTP protocol clients using the same
option character sequence.

ok dtucker@

22 months agodelete // debug comment chunks. If anyone wants to debug ld.so and runs
deraadt [Fri, 16 Dec 2022 03:14:52 +0000 (03:14 +0000)]
delete // debug comment chunks.  If anyone wants to debug ld.so and runs
into a mimmutable related concern, you want to undo this revision to get
this debug back.  I do not consider this suitable for hiding behind a
cpp macro.

22 months agoalways keep pf_state_keys attached to pf_states.
dlg [Fri, 16 Dec 2022 02:05:44 +0000 (02:05 +0000)]
always keep pf_state_keys attached to pf_states.

pf_state structures don't contain ip addresses, protocols, ports,
etc. that information is stored in a pf_state_key struct, which is
used to wire a state into the state table. when things like pfsync
or the pf state ioctls want to export information about a state,
particularly the addresses on it, they needs the pf_state_key struct
to read from.

before this diff the code assumed that when a state was removed
from the state tables it could throw the pf_state_key structs away
as part of that removal. this code changes it so once pf_state_insert
succeeds, a pf_state will keep its references to the pf_state_key
structs until the pf_state struct itself is being destroyed.

this allows anything that holds a reference to a pf_state to also
look at the pf_state_key structs because they're now effectively
an immutable part of the pf_state struct.

this is by far the simplest and most straightforward fix for pfsync
crashing on pf_state_key dereferences we've come up with so far.
it has been made possible by the addition of reference counts to
pf_state and pf_state_key structs, which allows us to properly
account for this adjusted lifecycle for pf_state_keys on pf_state
structs.

sashan@ and i have been kicking this diff around for a couple of
weeks now.
ok sashan@ jmatthew@

22 months agopriv_validgroup: do not read more than IF_NAMESIZE chars of name
millert [Thu, 15 Dec 2022 19:36:45 +0000 (19:36 +0000)]
priv_validgroup: do not read more than IF_NAMESIZE chars of name
Store the length locally instead of computing it multiple times.
OK dv@, previous version OK deraadt@

22 months agoThe idiomatic way of coping with signed char vs unsigned char (which
deraadt [Thu, 15 Dec 2022 18:20:39 +0000 (18:20 +0000)]
The idiomatic way of coping with signed char vs unsigned char (which
did not come from stdio read functions) in the presence of ctype
macros, is to always cast to (unsigned char).  casting to (int) for
a "macro" which is documented to take int, is weird.  And sadly wrong,
because of the sing extension risk..
same diff from florian

22 months agoacme-client: use timegm() instead of mktime()
tb [Thu, 15 Dec 2022 17:36:56 +0000 (17:36 +0000)]
acme-client: use timegm() instead of mktime()

Times in certificates are all expressed in Zulu time, so calling the time
zone dependent mktime() on such a time and comparing it to time(NULL) is
wrong.

This means that the check of at least 30 days validity and deciding on
whether to renew or not might have been off by by half a day depending on
where you are. That should not matter since you (or cron) are supposed to
run acme-client way more often than once a month.

ok claudio millert

22 months agoIn curve25519.h rev. 1.4 to 1.7, tb@ and jsing@ provided
schwarze [Thu, 15 Dec 2022 17:20:48 +0000 (17:20 +0000)]
In curve25519.h rev. 1.4 to 1.7, tb@ and jsing@ provided
ED25519_keypair(3), ED25519_sign(3), and ED25519_verify(3).
Document them.

22 months agoacme-client: use ASN1_TIME_to_tm()
tb [Thu, 15 Dec 2022 16:59:04 +0000 (16:59 +0000)]
acme-client: use ASN1_TIME_to_tm()

There is a hand-rolled, only minimally checked implementation converting
an ASN1_TIME into a struc tm. beck has invested a lot of time improving
the time parsing inside libcrypto, so make use of that. That code is safer,
better vetted and more correct.

ok florian

22 months agoAdd explicit casts to ctype functions in vmd(8).
dv [Thu, 15 Dec 2022 16:01:40 +0000 (16:01 +0000)]
Add explicit casts to ctype functions in vmd(8).

OK millert@

22 months agoAdd shim functions for repo code introduced by the pre repo stats.
claudio [Thu, 15 Dec 2022 12:04:59 +0000 (12:04 +0000)]
Add shim functions for repo code introduced by the pre repo stats.
From tb@

22 months agoRework statistic collection to be per repository and add metric output option
claudio [Thu, 15 Dec 2022 12:02:29 +0000 (12:02 +0000)]
Rework statistic collection to be per repository and add metric output option

Many statistic values are now accounted by repository via repo_stat_inc()
At end of the run sum_stats() accumulates these stats per TAL and globally.
The new output file metrics is written when the -m output flag is specified.
The metrics file is written in OpenMetrics format (with a few tweaks to
allow node_exporter to parse the file as well). The ometric code is a copy
from bgpctl(8) and should be kept in sync.
OK tb@

22 months agoThe argument to ctype functions must be EOF or representable as an
florian [Thu, 15 Dec 2022 08:07:03 +0000 (08:07 +0000)]
The argument to ctype functions must be EOF or representable as an
unsigned char.

Casting to int is particularly useless because that's what the
compiler already does. We need to prevent sign extension, not write
down that we want sign extension.

OK deraadt, kn, miod, op

22 months agoThe argument to ctype functions must be EOF or representable as an
florian [Thu, 15 Dec 2022 08:06:13 +0000 (08:06 +0000)]
The argument to ctype functions must be EOF or representable as an
unsigned char.

Casting to int is particularly useless because that's what the
compiler already does. We need to prevent sign extension, not write
down that we want sign extension.

OK deraadt, kn, miod

22 months agorework the text describing interface name;
jmc [Thu, 15 Dec 2022 06:39:05 +0000 (06:39 +0000)]
rework the text describing interface name;
feedback deraadt afresh kn

22 months agosync
deraadt [Thu, 15 Dec 2022 04:03:51 +0000 (04:03 +0000)]
sync

22 months agoadd __ctzdi2 to sparc64 kernel
jsg [Wed, 14 Dec 2022 23:50:31 +0000 (23:50 +0000)]
add __ctzdi2 to sparc64 kernel

If __builtin_ctzl() is used on sparc64, gcc 4.2 will emit a call to
__ctzdi2.  For userland this is in libgcc or compiler-rt.  In the kernel
we put these functions in libkern.

'looks good' deraadt@ miod@

22 months agoregen
jsg [Wed, 14 Dec 2022 23:29:09 +0000 (23:29 +0000)]
regen

22 months agoadd id for Navi 31, Radeon RX 7900 XT/XTX (gfx1100, GC 11.0.0)
jsg [Wed, 14 Dec 2022 23:28:31 +0000 (23:28 +0000)]
add id for Navi 31, Radeon RX 7900 XT/XTX (gfx1100, GC 11.0.0)

22 months agoIn evp.h rev. 1.109 and 1.112, jsing@ and tb@ provided
schwarze [Wed, 14 Dec 2022 22:37:07 +0000 (22:37 +0000)]
In evp.h rev. 1.109 and 1.112, jsing@ and tb@ provided
EVP_PKEY_new_raw_private_key(3), EVP_PKEY_new_raw_public_key(3),
EVP_PKEY_get_raw_private_key(3), and EVP_PKEY_get_raw_public_key(3).

Merge the documentation from the OpenSSL 1.1.1 branch, which is
still under a free license.  I tweaked the text somewhat for
conciseness, and argument names for uniformity.

22 months agoIn asn1.h rev. 1.71 and 1.72, jsing@ and tb@ provided ASN1_buf_print(3).
schwarze [Wed, 14 Dec 2022 20:27:28 +0000 (20:27 +0000)]
In asn1.h rev. 1.71 and 1.72, jsing@ and tb@ provided ASN1_buf_print(3).
Document it.

22 months agoThe argument to ctype functions must be EOF or representable as an
florian [Wed, 14 Dec 2022 18:32:26 +0000 (18:32 +0000)]
The argument to ctype functions must be EOF or representable as an
unsigned char.

Casting to int is particularly useless because that's what the
compiler already does. We need to prevent sign extension, not write
down that we want sign extension.

OK deraadt, millert, kn

22 months agoContinue loop if no match found; avoids an OOB write. ok florian@ tb@
otto [Wed, 14 Dec 2022 15:44:13 +0000 (15:44 +0000)]
Continue loop if no match found; avoids an OOB write. ok florian@ tb@

22 months agoOptimize io_buf_read() a bit by calling read() again after the inital
claudio [Wed, 14 Dec 2022 15:19:16 +0000 (15:19 +0000)]
Optimize io_buf_read() a bit by calling read() again after the inital
header of the buf was read. This often saves a round-trip to the main
event loop and poll(2).
OK job@ tb@

22 months agoPlug leak of ECDSA_SIG
tb [Wed, 14 Dec 2022 15:02:43 +0000 (15:02 +0000)]
Plug leak of ECDSA_SIG

ok sthen

22 months agoDo the IPv4 specific MP capability check only once per update/withdraw
claudio [Wed, 14 Dec 2022 14:16:20 +0000 (14:16 +0000)]
Do the IPv4 specific MP capability check only once per update/withdraw
instead of per prefix.
OK sthen@

22 months agoPut an splhigh() at the start of cpu_configure() to prevent splasserts
kettenis [Wed, 14 Dec 2022 13:55:11 +0000 (13:55 +0000)]
Put an splhigh() at the start of cpu_configure() to prevent splasserts
trigger in autoconf.  Matches what we do on (many) other architectures.

ok miod@

22 months agoMove some basic accessors of aspath to rde.h and make them static inline.
claudio [Wed, 14 Dec 2022 12:37:15 +0000 (12:37 +0000)]
Move some basic accessors of aspath to rde.h and make them static inline.
OK tb@

22 months agoAdd missing type for OMT_INFO.
claudio [Wed, 14 Dec 2022 11:23:41 +0000 (11:23 +0000)]
Add missing type for OMT_INFO.

Changes output like this:
 # HELP bgpd bgpd information
-# TYPE bgpd unknown
+# TYPE bgpd info
 bgpd_info{nodename="xxx",domainname="xxx",release="7.7"} 1

22 months agoAlways initialize b64sz
job [Wed, 14 Dec 2022 10:45:34 +0000 (10:45 +0000)]
Always initialize b64sz

OK tb@

22 months agoSwitch to struct timespec for collecting stats. This allows to use
claudio [Wed, 14 Dec 2022 10:34:49 +0000 (10:34 +0000)]
Switch to struct timespec for collecting stats. This allows to use
clock_gettime(CLOCK_MONOTONIC) for runtime calculation.
OK tb@