openbsd
3 years agoIn recent libz update, tb@ overzealously attempted codesize reduction with
deraadt [Thu, 8 Jul 2021 20:02:42 +0000 (20:02 +0000)]
In recent libz update, tb@ overzealously attempted codesize reduction with
option BUILDFIXED -- which is incompatible with kernel hibernate unpack since
it places side-effects into BSS, rather than inside z_streamp or using
the private allocator.  While here DYNAMIC_CRC_TABLE could cause similar
problems, so disable this also.
Space savings for the media is best done with bootblock-specific libz
compile options, coming in the following commit.
ok tb mlarkin

3 years agotypo: hibenate -> hibernate
tb [Thu, 8 Jul 2021 18:54:21 +0000 (18:54 +0000)]
typo: hibenate -> hibernate

3 years agosync
deraadt [Thu, 8 Jul 2021 18:25:07 +0000 (18:25 +0000)]
sync

3 years agoSupport MCC update response used by newer iwm(4) firmware, and verify
stsp [Thu, 8 Jul 2021 17:14:08 +0000 (17:14 +0000)]
Support MCC update response used by newer iwm(4) firmware, and verify
the size of the response we receive for MCC_UPDATE commands (even
though we aren't doing anything with this response yet).

With the correct expected response length this time. The driver needs
to expect the maximum response size, not sizeof() the response struct.
The actual response size depends on the number of channels stored
in the "world" regulatory profile of the device.

ok sthen@

3 years agoInitialize `ipsec_acquire_pool' pool (9) within pfkey_init() instead of
mvs [Thu, 8 Jul 2021 16:39:55 +0000 (16:39 +0000)]
Initialize `ipsec_acquire_pool' pool (9) within pfkey_init() instead of
doing that in runtime within ipsp_acquire_sa().

ok bluhm@

3 years agoDebug printfs in encdebug were inconsistent, some missing newlines
bluhm [Thu, 8 Jul 2021 15:13:14 +0000 (15:13 +0000)]
Debug printfs in encdebug were inconsistent, some missing newlines
produced ugly output.  Move the function name and the newline into
the DPRINTF macro.  This simplifies the debug statements.
OK tobhe@

3 years agoRemove the code to store intermediary vnodes in the unveil list.
claudio [Thu, 8 Jul 2021 13:33:05 +0000 (13:33 +0000)]
Remove the code to store intermediary vnodes in the unveil list.
These traversed vnodes are a leftover from early times where realpath(3)
was still all done in userland.
OK semarie@

3 years agoAttach imxiomuxc(4) to i.MX8MP as well.
patrick [Thu, 8 Jul 2021 13:20:26 +0000 (13:20 +0000)]
Attach imxiomuxc(4) to i.MX8MP as well.

3 years agorevert drm_mm to our previous drm 5.7.y version
jsg [Thu, 8 Jul 2021 13:07:53 +0000 (13:07 +0000)]
revert drm_mm to our previous drm 5.7.y version

Josh Rickmar and several developers reported X would sometimes fail to
start on laptops with raven ridge and picasso apus using amdgpu.

drm:pid71504:amdgpu_bo_pin_restricted *ERROR* 0xffff800001836e18 pin failed
[drm] *ERROR* Failed to pin framebuffer with error -12

ttm_bo_mem_space() ret -ENOMEM
ttm_bo_move_buffer()
ttm_bo_validate()
amdgpu_bo_pin_restricted()

By all reports this does not occur with the old drm_mm.

3 years agodocument X509_add1_reject_object(3) and X509_reject_clear(3)
schwarze [Thu, 8 Jul 2021 13:07:00 +0000 (13:07 +0000)]
document X509_add1_reject_object(3) and X509_reject_clear(3)

3 years agoadd new manual page for X509_add1_trust_object(3) and X509_trust_clear(3)
schwarze [Thu, 8 Jul 2021 12:30:27 +0000 (12:30 +0000)]
add new manual page for X509_add1_trust_object(3) and X509_trust_clear(3)

3 years agoFix mouse_word format now word-separators has no space and position of
nicm [Thu, 8 Jul 2021 11:14:53 +0000 (11:14 +0000)]
Fix mouse_word format now word-separators has no space and position of
menu if too close to the bottom.

3 years agoThe properties of the crypto algorithms never change. Declare them
bluhm [Thu, 8 Jul 2021 09:22:30 +0000 (09:22 +0000)]
The properties of the crypto algorithms never change.  Declare them
constant.  Then they are mapped as read only.
OK deraadt@ dlg@

3 years agocsplit(1): Fix extraneous output in edge case
millert [Thu, 8 Jul 2021 00:38:42 +0000 (00:38 +0000)]
csplit(1): Fix extraneous output in edge case
When the input to csplit contains fewer lines than the number of matches
specified, extra output was mistakenly included in some output files.
From FreeBSD via Tim Chase.

3 years agoBack out support for newer MCC update commands in iwm(4) for now.
stsp [Thu, 8 Jul 2021 00:12:49 +0000 (00:12 +0000)]
Back out support for newer MCC update commands in iwm(4) for now.
This seems to cause "could not init LAR" errors on some devices.

Reported by dv@ (8265) and sthen@ (9560)

3 years agoRework TX handling to be more similar and comparable to our other modern
patrick [Wed, 7 Jul 2021 21:21:48 +0000 (21:21 +0000)]
Rework TX handling to be more similar and comparable to our other modern
network controller drivers.  This also removes a variable modified by
both producer and consumer, making it a little bit more MP friendly.
Fixes a panic reported by Matthieu Estrade.

3 years agoWhen the list of free RX descriptors fills up completely, the consumed
patrick [Wed, 7 Jul 2021 21:12:51 +0000 (21:12 +0000)]
When the list of free RX descriptors fills up completely, the consumed
and produced index are equal.  The RX refill operation did not refill
in that case, because it believed that this means there's nothing to
do.  In that case no RX buffers were allocated, and the RX descriptor
ring went dry forever.  Instead loop until we reach an empty freelist
entry.

3 years agotell ether_input() to call pf_test() outside of smr_read sections,
sashan [Wed, 7 Jul 2021 20:19:01 +0000 (20:19 +0000)]
tell ether_input() to call pf_test() outside of smr_read sections,
because smr_read sections don't play well with sleeping locks in pf(4).

OK bluhm@

3 years agopfsync_undefer() must be called outside of PF_LOCK
sashan [Wed, 7 Jul 2021 18:38:25 +0000 (18:38 +0000)]
pfsync_undefer() must be called outside of PF_LOCK

OK @bluhm

3 years agoFix whitespaces in IPsec code.
bluhm [Wed, 7 Jul 2021 18:03:46 +0000 (18:03 +0000)]
Fix whitespaces in IPsec code.

3 years agodedup
sthen [Wed, 7 Jul 2021 13:29:42 +0000 (13:29 +0000)]
dedup

3 years agosync
deraadt [Wed, 7 Jul 2021 13:19:42 +0000 (13:19 +0000)]
sync

3 years agoMention that there are alternatives for ERE '+' and '?' in BRE.
martijn [Wed, 7 Jul 2021 11:21:55 +0000 (11:21 +0000)]
Mention that there are alternatives for ERE '+' and '?' in BRE.

OK kn@, millert@

3 years agosync
sthen [Wed, 7 Jul 2021 09:51:28 +0000 (09:51 +0000)]
sync

3 years agoSupport MCC update response used by newer iwm(4) firmware, and verify
stsp [Wed, 7 Jul 2021 09:47:40 +0000 (09:47 +0000)]
Support MCC update response used by newer iwm(4) firmware, and verify
the size of the response we receive for MCC_UPDATE commands (even
though we aren't doing anything with this response yet).

3 years agoSupport the SoC configuration command used by newer iwm(4) 9560 firmware.
stsp [Wed, 7 Jul 2021 09:13:50 +0000 (09:13 +0000)]
Support the SoC configuration command used by newer iwm(4) 9560 firmware.

3 years agoSupport the critical temperature detection feature of newer iwm(4) firmware.
stsp [Wed, 7 Jul 2021 09:06:23 +0000 (09:06 +0000)]
Support the critical temperature detection feature of newer iwm(4) firmware.

3 years agoParse CMD_VERSION TLV found in iwm(4) fw images and add iwm_lookup_cmd_ver().
stsp [Wed, 7 Jul 2021 08:52:54 +0000 (08:52 +0000)]
Parse CMD_VERSION TLV found in iwm(4) fw images and add iwm_lookup_cmd_ver().

It seems Intel saw a risk of eventually running out of firmware capability
support and API support flags, so yet another such mechanism was added.
If you want to know which variant of a command needs to be used there are
now at least three places to check for related information.

3 years agoSupport a new variant of the binding command required by new iwm(4) firmware.
stsp [Wed, 7 Jul 2021 08:32:00 +0000 (08:32 +0000)]
Support a new variant of the binding command required by new iwm(4) firmware.

3 years agoSupport the larger phy context command required by newer iwm(4) firmware.
stsp [Wed, 7 Jul 2021 08:21:31 +0000 (08:21 +0000)]
Support the larger phy context command required by newer iwm(4) firmware.

3 years agoRecognize and ignore new debug sections found in latest iwm(4) 9k fw images.
stsp [Wed, 7 Jul 2021 08:13:37 +0000 (08:13 +0000)]
Recognize and ignore new debug sections found in latest iwm(4) 9k fw images.

3 years agoSupport a new time quota command required for newer iwm(4) firmware.
stsp [Wed, 7 Jul 2021 08:05:11 +0000 (08:05 +0000)]
Support a new time quota command required for newer iwm(4) firmware.

3 years agoHoist whole TLS initialization instead of loading the cert/key into memory first
mestre [Wed, 7 Jul 2021 07:28:56 +0000 (07:28 +0000)]
Hoist whole TLS initialization instead of loading the cert/key into memory first
and setting them up later on, nowadays it's possible to do both steps in just
one go through tls_config_set_{cert,key}_file(3) so use it and then init TLS.
No functional change.

OK kn@

3 years agoupdate drm to linux 5.10.47
jsg [Wed, 7 Jul 2021 02:38:21 +0000 (02:38 +0000)]
update drm to linux 5.10.47

hardware support changes include
inteldrm: better support for tiger lake
amdgpu: support for navi12, navi21 "sienna_cichlid", arcturus
amdgpu: support for cezanne "green sardine" ryzen 5000 apu

Thanks to the OpenBSD Foundation for sponsoring this work,
patrick@ for helping adapt rockchip drm, kettenis@ and mpi@
for uvm discussions and various testers.

3 years agoMake test more verbose to see commands and error messages in output.
bluhm [Tue, 6 Jul 2021 19:48:05 +0000 (19:48 +0000)]
Make test more verbose to see commands and error messages in output.
This makes it easier to debug if something fails.  Add some ${SUDO}
in a way that this tests runs as root or regular user with and
without SUDO set.

3 years agoShifts (<<) of more than 32 bits must be done on 64-bit values.
patrick [Tue, 6 Jul 2021 19:09:57 +0000 (19:09 +0000)]
Shifts (<<) of more than 32 bits must be done on 64-bit values.

Reported by some grumpy old cheese lover
"looks reasonable" jsg@
ok kettenis@

3 years agofix an m4 macro which showed up unexpanded. kill some trailing whitespace while here
jasper [Tue, 6 Jul 2021 18:01:34 +0000 (18:01 +0000)]
fix an m4 macro which showed up unexpanded. kill some trailing whitespace while here

3 years agodocument X509_signature_dump(3) and X509_signature_print(3)
schwarze [Tue, 6 Jul 2021 16:05:44 +0000 (16:05 +0000)]
document X509_signature_dump(3) and X509_signature_print(3)

3 years agoFix iwx(4) against access points which use TKIP as the group cipher.
stsp [Tue, 6 Jul 2021 15:53:33 +0000 (15:53 +0000)]
Fix iwx(4) against access points which use TKIP as the group cipher.

This was broken when key installation was moved into a task context.

Reported by and confirmed fixed by gnezdo@ and zxystd from OpenIntelWireless
ok gnezdo@

3 years agoMake use of the existing bsd.regress.mk logic to flag root only targets,
anton [Tue, 6 Jul 2021 15:24:02 +0000 (15:24 +0000)]
Make use of the existing bsd.regress.mk logic to flag root only targets,
allowing the actual tests to become less repetitive.

ok bluhm@

3 years agoThis regress checks that 400 singals are evenly distributed over 4
bluhm [Tue, 6 Jul 2021 13:19:57 +0000 (13:19 +0000)]
This regress checks that 400 singals are evenly distributed over 4
threads.  It works well on idle 4 CPU machines, but with load or
fewer cores the distribution of the threads' signal handlers is
worse.  Reduce the limit of signals that each thread must receive
from 75 to 50.  This should prevent random test fails.
from Christian Ludwig

3 years agoalarm(3) cannot fail, remove error handling.
bluhm [Tue, 6 Jul 2021 11:50:34 +0000 (11:50 +0000)]
alarm(3) cannot fail, remove error handling.
suggested by millert@

3 years agoFix typo in comment.
bluhm [Tue, 6 Jul 2021 11:26:47 +0000 (11:26 +0000)]
Fix typo in comment.

3 years agoFix a bug in X509_print_ex(3).
schwarze [Tue, 6 Jul 2021 11:26:25 +0000 (11:26 +0000)]
Fix a bug in X509_print_ex(3).
If the user set nmflags == X509_FLAG_COMPAT and X509_NAME_print_ex(3)
failed, the error return value of 0 was misinterpreted as an indicator
of success, causing X509_print_ex(3) to ignore the error, continue
printing, and potentially return successfully even though not all
the content of the certificate was printed.

The X509_NAME_print_ex(3) manual page explains that this function
indicates failure by returning 0 if nmflags == X509_FLAG_COMPAT
and by returning -1 if nmflags != X509_FLAG_COMPAT.
That's definitely atrocious API design (witnessed by the
complexity of the code needed for correct error checking),
but changing the API contract and becoming incompatible
with OpenSSL would make matters even worse.

Note that just checking for <= 0 in all cases would not be correct
either because X509_NAME_print_ex(3) returns 0 to indicate that it
successfully printed zero bytes in some cases, for example when all
three of the following conditions hold:
1. nmflags != X509_FLAG_COMPAT
2. indent == 0 (which X509_print_ex(3) does use in some cases)
3. the name object is NULL or empty

I found the bug by code inspection and proposed an incomplete patch,
then jsing@ proposed this improved version of the patch.
OK jsing@.

3 years agoIntroduce CPU_IS_RUNNING() and us it in scheduler-related code to prevent
kettenis [Tue, 6 Jul 2021 09:34:06 +0000 (09:34 +0000)]
Introduce CPU_IS_RUNNING() and us it in scheduler-related code to prevent
waiting on CPUs that didn't spin up.  This will allow us to spin down
CPUs in the future to save power as well.

ok mpi@

3 years agoImprove error reporting when the tmux /tmp directory cannot be created
nicm [Tue, 6 Jul 2021 08:26:00 +0000 (08:26 +0000)]
Improve error reporting when the tmux /tmp directory cannot be created
or used, GitHub issue 2765 from Uwe Kleine-Koenig.

3 years agoForbid empty session names, GitHub issue 2758.
nicm [Tue, 6 Jul 2021 08:18:38 +0000 (08:18 +0000)]
Forbid empty session names, GitHub issue 2758.

3 years agosync man page with changes 1.2.3 -> 1.2.11. some changes:
jmc [Tue, 6 Jul 2021 06:26:05 +0000 (06:26 +0000)]
sync man page with changes 1.2.3 -> 1.2.11. some changes:

- update references version number
- Z_NULL -> NULL; from millert
- terminate function synopses in main body with ";"; from tb
- NULL -> NUL; from tb
- update NAME and SYNOPSIS for added functions
- updated copyright, to match zlib.h
- simplify \-1 -> -1

ok tb

3 years agocorrect mailto
anton [Tue, 6 Jul 2021 05:59:20 +0000 (05:59 +0000)]
correct mailto

3 years agodocument i2a_ASN1_OBJECT(3)
schwarze [Mon, 5 Jul 2021 17:57:16 +0000 (17:57 +0000)]
document i2a_ASN1_OBJECT(3)

3 years agoWrite ktrace output files onto NFS mounted file systems.
bluhm [Mon, 5 Jul 2021 16:11:52 +0000 (16:11 +0000)]
Write ktrace output files onto NFS mounted file systems.

3 years agoDon't use a non-standard empty statement in while loops
jca [Mon, 5 Jul 2021 13:56:24 +0000 (13:56 +0000)]
Don't use a non-standard empty statement in while loops

Empty statements accepted by ksh(1) pointed out by millert@, use of this
non-standard grammar in the installer pointed out by halex@.
ok halex@ millert@

3 years agoDo not permit an empty list between "while" and "do".
millert [Mon, 5 Jul 2021 13:41:46 +0000 (13:41 +0000)]
Do not permit an empty list between "while" and "do".
This avoids a cpu loop for "while do done" and is consistent with
the behavior of AT&T ksh and most other shells.  OK jca@ halex@

3 years agoPrint SA MTU if included in pfkey message.
tobhe [Mon, 5 Jul 2021 12:03:42 +0000 (12:03 +0000)]
Print SA MTU if included in pfkey message.

ok bluhm@ sthen@ mpi@

3 years agoExport tdb MTU to userland via SADB_GET. This helps debug path MTU
tobhe [Mon, 5 Jul 2021 12:01:20 +0000 (12:01 +0000)]
Export tdb MTU to userland via SADB_GET. This helps debug path MTU
discovery issues with ESP in UDP.

ok bluhm@ sthen@ mpi@

3 years agoFix off-by-one array access when 64 channel stream is resampled
ratchov [Mon, 5 Jul 2021 08:29:59 +0000 (08:29 +0000)]
Fix off-by-one array access when 64 channel stream is resampled

3 years agorename kd_put() -> kd_copy()
anton [Mon, 5 Jul 2021 05:50:19 +0000 (05:50 +0000)]
rename kd_put() -> kd_copy()

3 years agorename kd_put() -> kd_copy()
anton [Mon, 5 Jul 2021 05:49:30 +0000 (05:49 +0000)]
rename kd_put() -> kd_copy()

3 years agoetherbridge_map was way too clever, so simplify it.
dlg [Mon, 5 Jul 2021 04:17:41 +0000 (04:17 +0000)]
etherbridge_map was way too clever, so simplify it.

the code tried to carry state from the quick smr based lookup through
to the actual map update under the mutex, but this led to refcnt
leaks, and logic errors. the simplification is that if the smr based
checks say the map needs updating, we prepare the update and then
forget what we learnt inside the smr critical section and redo them
under the mutex again.

entries in an etherbridge map are either in it or they aren't, so
we don't need to refcnt them. this means the thing that takes an
entry out of the map becomes directly responsible for destroy it,
so they can do the smr call or barrier directly rather than via a
refcnt.

found by hrvoje popovski while testing the stack running in parallel,
and fix tested by him too.
ok sashan@

3 years agoFix a couple of whitespace things. Portable already has these so this
dtucker [Mon, 5 Jul 2021 01:21:07 +0000 (01:21 +0000)]
Fix a couple of whitespace things.  Portable already has these so this
removes two diffs between the two.

3 years agoOrder includes as per style(9). Portable already has these so this
dtucker [Mon, 5 Jul 2021 01:16:46 +0000 (01:16 +0000)]
Order includes as per style(9).  Portable already has these so this
removes a handful of diffs between the two.

3 years agoRemove comment referencing now-removed RhostsRSAAuthentication. ok djm@
dtucker [Mon, 5 Jul 2021 00:50:25 +0000 (00:50 +0000)]
Remove comment referencing now-removed RhostsRSAAuthentication.  ok djm@

3 years agoallow spaces to appear in usernames for local to remote, and scp -3
djm [Mon, 5 Jul 2021 00:25:42 +0000 (00:25 +0000)]
allow spaces to appear in usernames for local to remote, and scp -3
remote to remote copies. with & ok dtucker bz#1164

3 years agoFix legacy booting.
krw [Sun, 4 Jul 2021 20:37:11 +0000 (20:37 +0000)]
Fix legacy booting.

Don't flag the EFI SYS partition "DOSACTIVE". Leave that status
to the OpenBSD partition. Reverts part of r1.77.

Problem reported and fix tested by Mihai Popescu. Thanks!

Cluebats from deraadt@ and code bisecting by dv@.

ok kettenis@

3 years agostore provider ID in umb(4), and display it in ifconfig. OK stsp deraadt
sthen [Sun, 4 Jul 2021 19:22:31 +0000 (19:22 +0000)]
store provider ID in umb(4), and display it in ifconfig.  OK stsp deraadt

Previously only the provider's display name was used. The text used depends
on how the SIM is configured and not just on the network in use (for example,
an MVNO SIM on another network will often display the MVNO's name rather
than that of the underlying network).

I have a SIM that roams to any network in my country - whichever network
it roams onto, the display name is the same, so you can't tell which
network you're really using. By printing the provider ID (in GSM-land this
is MCC+MNC) it's easy to lookup and check this.

As the provider was printed on the ifconfig line also showing subscriber-id
and ICCID it was already a bit long, and adding the provider-id there is
a bit too much, so move it to the output line showing APN, now looking like

:        subscriber-id 2400xxxxxxxxxxx ICC-id 8946203xxxxxxxxxxxxx
:        device EM7455 IMEI 01458xxxxxxxxxx firmware SWI9X30C_02.24.0
:        APN key provider Tele2 IoT provider-id 23420

3 years agotb notices i did not add a copyright in 2011
deraadt [Sun, 4 Jul 2021 17:51:20 +0000 (17:51 +0000)]
tb notices i did not add a copyright in 2011

3 years agoAdd missing RCS tags
tb [Sun, 4 Jul 2021 17:41:23 +0000 (17:41 +0000)]
Add missing RCS tags

3 years agosync
deraadt [Sun, 4 Jul 2021 17:23:49 +0000 (17:23 +0000)]
sync

3 years ago.Fl marks up options not arguments
kn [Sun, 4 Jul 2021 15:58:51 +0000 (15:58 +0000)]
.Fl marks up options not arguments

POSIX says `-v' is an option, not an argument;  options may take arguments,
as documented in getopt(3).

Programs may take arguments as well, e.g. "prog -v -- arg ...", but these
are usually marked up with `.Cm'.

Change "The arguments are as follows:" to "The options are as follows:" in
`.Fl's DESCRIPTION example to match what most of our base manuals say.

OK schwarze jmc

3 years agoThe mandoc(1) manual already mentions that -T man output mode
schwarze [Sun, 4 Jul 2021 15:38:08 +0000 (15:38 +0000)]
The mandoc(1) manual already mentions that -T man output mode
neither supports tbl(7) nor eqn(7) input.
If an input file contains such code anyway, tell the user
rather than failing an assert(3)ion.

Fixing a crash reported by Bjarni Ingi Gislason <bjarniig at rhi dot hi dot is>
in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901636 which the
Debian maintainer of mandoc, Michael at Stapelberg dot ch, forwarded to me.

3 years agosync
deraadt [Sun, 4 Jul 2021 14:29:36 +0000 (14:29 +0000)]
sync

3 years agobump major after zlib update
tb [Sun, 4 Jul 2021 14:29:14 +0000 (14:29 +0000)]
bump major after zlib update

3 years agoUpdate libz to zlib 1.2.11 and reapply local patches as far as this
tb [Sun, 4 Jul 2021 14:24:49 +0000 (14:24 +0000)]
Update libz to zlib 1.2.11 and reapply local patches as far as this
made sense.

Tested in snaps for a few days. deraadt helped with fitting things on
floppies and jmatthew found a bug I introduced.

ok deraadt

3 years agodocument X509_find_by_subject(3) and X509_find_by_issuer_and_serial(3)
schwarze [Sun, 4 Jul 2021 12:56:27 +0000 (12:56 +0000)]
document X509_find_by_subject(3) and X509_find_by_issuer_and_serial(3)

3 years agoBugfix: when X509_NAME_dup(3) failed, X509_NAME_set(3) indicated success
schwarze [Sun, 4 Jul 2021 11:38:37 +0000 (11:38 +0000)]
Bugfix: when X509_NAME_dup(3) failed, X509_NAME_set(3) indicated success
even though it did not actually set the name.
Instead, indicate failure in this case.

This commit sneaks in a small, unrelated change in behaviour.
If the first argument of X509_NAME_set(3) was NULL, the function
used to return failure.  Now it crashes the program by accessing
the NULL pointer, for compatibility with the same change in OpenSSL.

This merges the following two commits from the OpenSSL-1.1.1 branch,
which is still available under a free license:
1. 180794c5  Rich Salz        Sep  3 11:33:34 2017 -0400
2. c1c1783d  Richard Levitte  May 17 09:53:14 2018 +0200

OK tb@

3 years ago__realpath: removes LOCKLEAF from NDINIT.
semarie [Sat, 3 Jul 2021 17:51:59 +0000 (17:51 +0000)]
__realpath: removes LOCKLEAF from NDINIT.

The code doesn't doesn't need it: the returned vnode is released
immediately. The string path is built from the namei() call using
REALPATH, during directories traversal.

Without LOCKLEAF, calling vrele() only is enough if namei() found a
file, instead of calling VOP_UNLOCK() + vrele().

ok claudio@ mpi@

3 years agoDocument X509_NAME_set(3).
schwarze [Sat, 3 Jul 2021 17:04:51 +0000 (17:04 +0000)]
Document X509_NAME_set(3).
It is not particularly well-designed and sets a number of traps for the
unwary, but it is a public API function in both OpenSSL and LibreSSL
and used at various places.

3 years agoDo a first pass clean up of SSL_METHOD.
jsing [Sat, 3 Jul 2021 16:06:44 +0000 (16:06 +0000)]
Do a first pass clean up of SSL_METHOD.

The num_ciphers, get_cipher_by_char and put_cipher_by_char function
pointers use the same function for all methods - call ssl3_num_ciphers()
directly, absorb ssl3_get_cipher_by_char() into SSL_CIPHER_find() and
remove the unused ssl3_put_cipher_by_char() code.

ok inoguchi@ tb@

3 years agoGarbage collect do_test_cipherlist().
jsing [Sat, 3 Jul 2021 16:04:29 +0000 (16:04 +0000)]
Garbage collect do_test_cipherlist().

This code no longer compiles and the equivalent test coverage has been
added to regress/lib/libssl/ciphers (and is actually run).

3 years agoAdd test that ensures ssl3_ciphers[] is sorted by cipher id.
jsing [Sat, 3 Jul 2021 15:54:41 +0000 (15:54 +0000)]
Add test that ensures ssl3_ciphers[] is sorted by cipher id.

3 years agoRewrite get_put_test() as cipher_find_test().
jsing [Sat, 3 Jul 2021 14:52:12 +0000 (14:52 +0000)]
Rewrite get_put_test() as cipher_find_test().

The get_cipher_by_char() and put_cipher_by_char() pointers are no longer
accessible on the SSL_METHOD (and soon will not even exist). Rewrite the
test to use SSL_CIPHER_find() instead.

3 years agofix a bug that resulted in incomplete testing:
schwarze [Sat, 3 Jul 2021 12:04:53 +0000 (12:04 +0000)]
fix a bug that resulted in incomplete testing:
end statements with ';' because ',' isn't enough

3 years agoAvoid spinning with interrupts disabled.
kettenis [Sat, 3 Jul 2021 10:21:38 +0000 (10:21 +0000)]
Avoid spinning with interrupts disabled.

ok patrick@

3 years agoUpdate to go-module.5 to reflect the modgo-gen-modules changes.
abieber [Sat, 3 Jul 2021 02:49:13 +0000 (02:49 +0000)]
Update to go-module.5 to reflect the modgo-gen-modules changes.

3 years agoAvoid local variable definitions in the middle of code.
kettenis [Fri, 2 Jul 2021 20:39:25 +0000 (20:39 +0000)]
Avoid local variable definitions in the middle of code.

3 years agoAvoid spinning with interrupts disabled in the rpi3.
kettenis [Fri, 2 Jul 2021 19:55:00 +0000 (19:55 +0000)]
Avoid spinning with interrupts disabled in the rpi3.

tested by sthen@ (a while ago)

3 years agousleep(3): always call nanosleep(2)
cheloha [Fri, 2 Jul 2021 17:16:20 +0000 (17:16 +0000)]
usleep(3): always call nanosleep(2)

usleep(3) is a wrapper around nanosleep(2).  We should always call
nanosleep(), even if the input is zero.  This makes behavior easier
to reason about and ensures we get a nanosleep() ktrace hit if a
program calls usleep().

ok millert@

3 years agoDocument the read-only (sic!) accessor function X509_NAME_ENTRY_set(3).
schwarze [Fri, 2 Jul 2021 16:13:56 +0000 (16:13 +0000)]
Document the read-only (sic!) accessor function X509_NAME_ENTRY_set(3).
While here, stress that X509_NAME objects cannot share X509_NAME_ENTRY
objects, and polish a few misleading wordings.

3 years agoBefore calling setrlimit(), pull cur up to max.
deraadt [Fri, 2 Jul 2021 15:34:27 +0000 (15:34 +0000)]
Before calling setrlimit(), pull cur up to max.
ok millert

3 years agoUse nanosleep() and setitimer() instead of usleep() and ualarm().
millert [Fri, 2 Jul 2021 15:34:16 +0000 (15:34 +0000)]
Use nanosleep() and setitimer() instead of usleep() and ualarm().
Both usleep() and ualarm() are obsolete and were removed from POSIX.
OK deraadt@

3 years agoRemove bogus comments.
kettenis [Fri, 2 Jul 2021 14:58:33 +0000 (14:58 +0000)]
Remove bogus comments.

3 years agoRemove a few pointless comments.
kettenis [Fri, 2 Jul 2021 14:50:18 +0000 (14:50 +0000)]
Remove a few pointless comments.

3 years agoWriting ktrace files to NFS must no be done while holding the net
bluhm [Fri, 2 Jul 2021 12:17:41 +0000 (12:17 +0000)]
Writing ktrace files to NFS must no be done while holding the net
lock.  accept(2) panics, connect(2) dead locks.  Additionally copy
in or out must not hold the net lock as it may be a memory mapped
file on NFS.
Simplify dns_portcheck(), it does not modify namelen anymore.
In doaccept() release the socket lock before calling copyaddrout().
Rearrange the checks in sys_connect() like they are in sys_bind().
OK mpi@

3 years agoAdd a roff comment saying that X509_certificate_type(3) is intentionally
schwarze [Fri, 2 Jul 2021 11:48:01 +0000 (11:48 +0000)]
Add a roff comment saying that X509_certificate_type(3) is intentionally
undocumented.  It is archaic and practically unused and unusable.
tb@ and jsing@ agree with marking it as undocumented.
Put the comment here because EVP_PKEY_base_id(3) is a viable alternative.

3 years agocall the API function X509_NAME_cmp(3) instead of the obsolete,
schwarze [Fri, 2 Jul 2021 11:15:12 +0000 (11:15 +0000)]
call the API function X509_NAME_cmp(3) instead of the obsolete,
undocumented macro alias X509_name_cmp(3);
no binary change;
OK tb@

3 years agocall the API function X509_NAME_cmp(3) instead of the obsolete,
schwarze [Fri, 2 Jul 2021 11:15:08 +0000 (11:15 +0000)]
call the API function X509_NAME_cmp(3) instead of the obsolete,
undocumented macro alias X509_name_cmp(3);
no change to the assembler code generated by the compiler;
OK tb@

3 years agoAdd a roff comment saying that X509_name_cmp(3) is intentionally
schwarze [Fri, 2 Jul 2021 10:50:39 +0000 (10:50 +0000)]
Add a roff comment saying that X509_name_cmp(3) is intentionally
undocumented because it is almost unused in real-world code.
OK tb@

3 years agoCleanup early bootstrap code. This mostly realigns the code with the
kettenis [Fri, 2 Jul 2021 10:42:22 +0000 (10:42 +0000)]
Cleanup early bootstrap code.  This mostly realigns the code with the
FreeBSD code from which it was derived.  In particular, it uses the same
trick to switch page tables as FreeBSD, which is what we use to spin up
the secondary CPUs already.  This avoids having to install a temporary
1:1 mapping.

ok mlarkin@

3 years agoOnly do TLB shootdown on CPUs where a pmap is active. Only make SBI calls
kettenis [Fri, 2 Jul 2021 08:53:28 +0000 (08:53 +0000)]
Only do TLB shootdown on CPUs where a pmap is active.  Only make SBI calls
that do a remote SFENCE.VMA or FENCE.I if the set of hart IDs isn't empty.
This significantly speeds things up.

ok jsg@

3 years agoRun SBI calls to to get mvendorid/marchid/mimplid on the actual CPU we're
kettenis [Fri, 2 Jul 2021 08:44:37 +0000 (08:44 +0000)]
Run SBI calls to to get mvendorid/marchid/mimplid on the actual CPU we're
probing and decode mvendorid and marchid.

ok mlarkin@, deraadt@, jsg@