openbsd
3 years agoSend arguments in alphabetical order
job [Sat, 27 Mar 2021 18:12:15 +0000 (18:12 +0000)]
Send arguments in alphabetical order

OK tb@

3 years agoEnable test-sig-algs-renegotiation-resumption.py.
tb [Sat, 27 Mar 2021 18:11:53 +0000 (18:11 +0000)]
Enable test-sig-algs-renegotiation-resumption.py.

This test covers various scenarios with renegotiation and session
resumption. In particular it crashes the OpenSSL 1.1.1j server due
to the sigalg NULL deref fixed this week. We need --sig-algs-drop-ok
since we do not currently implement signature_algorithms_cert.

3 years agoIf we want to configure default routes over multiple interfaces we
florian [Sat, 27 Mar 2021 18:10:38 +0000 (18:10 +0000)]
If we want to configure default routes over multiple interfaces we
need to provide the address of the interface behind which the default
router is in case they are on the same subnet otherwise the kernel
can't figure out which route we are talking about
This happens for example when your wifi and wired networks are bridged.
Pointed out by claudio some time ago.

3 years agoGarbage collect s->internal->type
tb [Sat, 27 Mar 2021 17:56:28 +0000 (17:56 +0000)]
Garbage collect s->internal->type

This variable is used in the legacy stack to decide whether we are
a server or a client. That's what s->server is for...

The new TLSv1.3 stack failed to set s->internal->type, which resulted
in hilarious mishandling of previous_{client,server}_finished. Indeed,
both client and server would first store the client's verify_data in
previous_server_finished and later overwrite it with the server's
verify_data. Consequently, renegotiation has been completely broken
for more than a year. In fact, server side renegotiation was broken
during the 6.5 release cycle. Clearly, no-one uses this.

This commit fixes client side renegotiation and restores the previous
behavior of SSL_get_client_CA_list(). Server side renegotiation will
be fixed in a later commit.

ok jsing

3 years agoFix SDMMC_DEBUG build
kn [Sat, 27 Mar 2021 14:36:28 +0000 (14:36 +0000)]
Fix SDMMC_DEBUG build

- Replace undefined SDMMCDEVNAME macro with usual DEVNAME from sdmmcvar.h
- typofix struct member name

3 years agoHandle dynamic definition of SIGSTKSZ as of glibc 2.34 on Linux.
bcook [Sat, 27 Mar 2021 11:17:58 +0000 (11:17 +0000)]
Handle dynamic definition of SIGSTKSZ as of glibc 2.34 on Linux.

ok bluhm@, inoguchi@, tb@, deraadt@

3 years agoThe ospf6d manpage states that the daemon laks support for multi area
remi [Sat, 27 Mar 2021 10:23:25 +0000 (10:23 +0000)]
The ospf6d manpage states that the daemon laks support for multi area
configurations. Fix the example config to only use one area instead of
two.

Issue brought up and OK danj@
claudio@ doesn't mind

3 years agotrim the FCS off Ethernet packets before sending them up the stack.
dlg [Sat, 27 Mar 2021 01:12:01 +0000 (01:12 +0000)]
trim the FCS off Ethernet packets before sending them up the stack.

Jurjen Oskam on tech@ found that ure in a veb caused these extra
fcs bytes to be transmitted by other veb members. the extra bytes
aren't a problem usually because our network stack ignores them if
they're present, eg, the ip stack reads an ip packet length and
trims bytes in an mbuf if there's more. bridge(4) masked this problem
because it always parses IP packets going over the bridge and trims
them like the IP stack before pushing them out another port.

veb(4) generally just moves packets around based on the Ethernet
header, by default it doesn't look too deeply into packets, which
is why this issue popped out.

it is more correct for ure to just not pass the fcs bytes up.

ok jmatthew@ kevlo@

3 years agoReturn EOPNOTSUPP for unsupported ioctls
kn [Fri, 26 Mar 2021 23:34:50 +0000 (23:34 +0000)]
Return EOPNOTSUPP for unsupported ioctls

Match what apm(4/macppc) says and make apmd(8) log an approiate warning when
unsupported power actions are requested.

Merge identical cases while here.

This syncs with the apm ioctl handlers on loongson and arm64.

3 years agoFix "mach dtb" return code to avoid bogus boot
kn [Fri, 26 Mar 2021 23:29:21 +0000 (23:29 +0000)]
Fix "mach dtb" return code to avoid bogus boot

Bootloader command functions must return zero in case of failure,
returning 1 tells the bootloader to boot the currently set kernel iamge.

"machine dtb" is is the wrong way around so using it triggers a boot.

Fix this and print a brief usage (like other commands such as "hexdump" do)
while here.

Feedback OK patrick

3 years agoFix errno, merge ioctl cases
kn [Fri, 26 Mar 2021 22:55:48 +0000 (22:55 +0000)]
Fix errno, merge ioctl cases

The EBADF error is always overwritten for the standby, suspend and
hibernate ioctls, only the mode ioctl has it right.

Merge the now identical casese while here.

OK patrick

3 years agoFlag sensors as invalid on bogus reads
kn [Fri, 26 Mar 2021 22:54:41 +0000 (22:54 +0000)]
Flag sensors as invalid on bogus reads

Follow-up to the previous commit:

This driver continues to report stale hw.sensors values when reading
them fails, which can easily be observed on a Pinebook Pro after
plugging in the AC cable, causing the hw.sensors.cwfg0.raw0 (battery
remaining minutes) value to jump considerably one or two times before
stalling and becoming incoherent with the rest.

Flag sensors invalid upfront in apm's fashion and mark them OK iff they
yield valid values;   this is what other drivers such as rktemp(4) do,
but the consequence/intention of SENSOR_FINVALID is sysctl(8) and systat(8)
skipping such sensors (until AC gets plugged off again).

OK patrick

3 years agoPush kernel lock within rtable_add(9) and rework it to return 0 in the
mvs [Fri, 26 Mar 2021 22:41:06 +0000 (22:41 +0000)]
Push kernel lock within rtable_add(9) and rework it to return 0 in the
case when requested table is already exists.

Except initialization time, route_output() and if_createrdomain() are the
only paths where we call rtable_add(9). We check requested table existence
by rtable_exists(9) and it's not the error condition if the table exists.
Otherwise we are trying to create requested table by rtable_add(9). Those
paths are kernel locked so concurrent thread can't create requested table
just after rtable_exists(9) check. Also rtable_add(9) has internal
rtable_exists(9) check and in this case the table existence assumed as
EEXIST error. This error path is never reached.

We are going to unlock PF_ROUTE sockets. This means route_output() will
not be serialized with if_createrdomain() and concurrent thread could
create requested table. Table existence check and creation should be
serialized and it makes sense to do this within rtable_add(9). This time
kernel lock is used for this so it pushed down to rtable_add(9). The
internal rtable_exists(9) check was modified and table existence is not
error now.

Since the external rtable_exists(9) check is useless it was removed from
if_createrdomain(). It still exists in route_output() path because the
logic is more complicated here.

ok mpi@

3 years agoPush kernel lock down to rt_setsource() to make `ifa' dereference safe.
mvs [Fri, 26 Mar 2021 22:40:08 +0000 (22:40 +0000)]
Push kernel lock down to rt_setsource() to make `ifa' dereference safe.
Netlock doesn't make sense here because ifa_ifwithaddr() holds kernel
lock while performs lists walkthrough.

This was made to decrease the future diff for PF_ROUTE sockets
unlocking. This time kernel lock is still held while we perform
rt_setsource().

ok mpi@

3 years agoAdd test-sig-algs-renegotiation-resumption.py
tb [Fri, 26 Mar 2021 22:35:17 +0000 (22:35 +0000)]
Add test-sig-algs-renegotiation-resumption.py

This test currently fails but may soon be fixed.

3 years agoInitialize error variable in dtread().
bluhm [Fri, 26 Mar 2021 21:17:10 +0000 (21:17 +0000)]
Initialize error variable in dtread().
OK mpi@

3 years agoOnly install route with label, fix route leak on destroy
kn [Fri, 26 Mar 2021 19:00:21 +0000 (19:00 +0000)]
Only install route with label, fix route leak on destroy

ifconfig mp* mplslabel N" validates the label both in ifconfig(8) and each
driver's ioctl handler, but there is one case where all drivers install
a route without looking at the label at all.

SIOCSLIFPHYRTABLE in all three drivers just validates the rdomain and sets
the label to itself (0) such that the route is (re)installed accordingly.

None of the driver's helper functions dealing with labels and routes
validate labels themselves but instead expect the callees, e.g. the ioctl
handler to do so.

That means we can install routes for the explicit NULL label in non-default
routing tables but are never able to clean them up without reboot.

Fix this by adding the inverse of mp*_clone_destroy()'s label check to the
routines installing the MPLS route to avoid bogus ones in the first place.

OK claudio

3 years agoinspect all the packets to see if they are dhcp, not just the first one
deraadt [Fri, 26 Mar 2021 17:40:03 +0000 (17:40 +0000)]
inspect all the packets to see if they are dhcp, not just the first one
in a ring bundle.
ok florian

3 years agoSimplify argument parsing of vmctl stop
tb [Fri, 26 Mar 2021 16:28:15 +0000 (16:28 +0000)]
Simplify argument parsing of vmctl stop

The previous argument parsing logic had at least three bugs:
a copy-paste error led to an off-by-one and a printf "%s" NULL,
as reported by Preben Guldberg.  A previous commit led to a dead
else branch and a use of uninitialized.  This can all be avoided
by reworking the logic so as to be readable.

Prompted by a diff from Preben

ok dv

3 years agoCompare filepath with strcmp() and not strcasecmp(). The URI in RPKI are
claudio [Fri, 26 Mar 2021 16:03:29 +0000 (16:03 +0000)]
Compare filepath with strcmp() and not strcasecmp(). The URI in RPKI are
case sensitive.
OK tb@

3 years agoInvert the 'R' indicator which seems rather unintuitive at the moment,
lum [Fri, 26 Mar 2021 15:02:10 +0000 (15:02 +0000)]
Invert the 'R' indicator which seems rather unintuitive at the moment,
currently a '*' next to a file's name indicates it is writable. With
this diff it now means it is read-only. Also make the active buffer
indicator more visible:'.'->'>'.

3 years agoSort header files and wrap long lines in x509.c
inoguchi [Fri, 26 Mar 2021 13:46:25 +0000 (13:46 +0000)]
Sort header files and wrap long lines in x509.c

3 years agoRemove parenthesis around return value to reduce the diff with NetBSD.
mpi [Fri, 26 Mar 2021 13:40:05 +0000 (13:40 +0000)]
Remove parenthesis around return value to reduce the diff with NetBSD.

No functional change.

ok mlarkin@

3 years agoAdd 'get-environment-variable', in a fashion:
lum [Fri, 26 Mar 2021 12:31:37 +0000 (12:31 +0000)]
Add 'get-environment-variable', in a fashion:

(define curdir(get-environment-variable CURDIR))
(insert curdir)

Should now print the value of the environment variable CURDIR's value,
or error if it is not set.

3 years agoFix wrong sequence number wrap in ieee80211_recv_auth().
stsp [Fri, 26 Mar 2021 10:18:55 +0000 (10:18 +0000)]
Fix wrong sequence number wrap in ieee80211_recv_auth().
IEEE 802.11 sequence numbers wrap around at 0xfff, not 0xffff.
ok phessler@ kevlo@

3 years agoRewrite poll loop a bit. Put the various message queues into an array
claudio [Fri, 26 Mar 2021 10:01:51 +0000 (10:01 +0000)]
Rewrite poll loop a bit. Put the various message queues into an array
with the same order as the pollfds. This way simple for loops can be
used to setup and handle all cases but POLLIN.
OK tb@

3 years agoChange the regex for define names. Make more characters available.
lum [Fri, 26 Mar 2021 08:27:49 +0000 (08:27 +0000)]
Change the regex for define names. Make more characters available.
Keep the same regex for mg function names. Though perhaps for
user-defined functions other characters could be ok....

3 years agoregen
jan [Fri, 26 Mar 2021 08:17:23 +0000 (08:17 +0000)]
regen

3 years agoAdd PCI ID for Intel X710 10G SFP+ NIC
jan [Fri, 26 Mar 2021 08:02:34 +0000 (08:02 +0000)]
Add PCI ID for Intel X710 10G SFP+ NIC

ok patrick@

3 years agoregen
jan [Fri, 26 Mar 2021 08:00:02 +0000 (08:00 +0000)]
regen

3 years agoAdd missing PCI ID for Intel X710 SFP+ NIC
jan [Fri, 26 Mar 2021 07:58:44 +0000 (07:58 +0000)]
Add missing PCI ID for Intel X710 SFP+ NIC

ok patrick@

3 years agoChange two more bool counters to pointer NULL checks.
lum [Fri, 26 Mar 2021 07:25:23 +0000 (07:25 +0000)]
Change two more bool counters to pointer NULL checks.

3 years agoResync the supported hardware list with armv7.html, suggested by,
dtucker [Fri, 26 Mar 2021 02:28:43 +0000 (02:28 +0000)]
Resync the supported hardware list with armv7.html, suggested by,
corrections and ok jsg@.  This replaces the obsolete list of boards and
their supported devices with the current list of supported boards only,
similar to arm64.

3 years agoPermit kern.somaxconn when the unix pledge is used. Previously this was only
abieber [Thu, 25 Mar 2021 21:27:45 +0000 (21:27 +0000)]
Permit kern.somaxconn when the unix pledge is used. Previously this was only
allowed when inet was used.

This lets Go programs use 'unix' without also including 'inet'.

from Josh Rickmar

ok / tree review from deraadt@, commit message cluestick from tb@

3 years agoLog ioctl failures
kn [Thu, 25 Mar 2021 20:46:55 +0000 (20:46 +0000)]
Log ioctl failures

Otherwise there is no way to determine why e.g. zzz(8) does not do anything
on certain machines;  macppc and arm64 for example have no suspend/resume
suspend at all (for now) and loongson has partial support.

This still does not make `zzz' or `apm -z' report the informative
warning on standar error, but syslog now prints

apmd: system suspending
apmd: battery status: unknown. external power status: not known. estimated battery life 0%
apmd: suspend: Operation not supported

OK benno

3 years agoMove the expression list create item code into a single function.
lum [Thu, 25 Mar 2021 20:25:31 +0000 (20:25 +0000)]
Move the expression list create item code into a single function.

3 years agomail(1) cares about whitespace
deraadt [Thu, 25 Mar 2021 19:10:39 +0000 (19:10 +0000)]
mail(1) cares about whitespace

3 years agoAdd an (exit) method.
lum [Thu, 25 Mar 2021 17:31:21 +0000 (17:31 +0000)]
Add an (exit) method.

3 years agoUser a pointer's value (!NULL) instead of a boolean to indicate some
lum [Thu, 25 Mar 2021 16:58:46 +0000 (16:58 +0000)]
User a pointer's value (!NULL) instead of a boolean to indicate some
kind of data being found.

3 years agoan invalid value of `mcs' may come from the hardware so adjust code so that the
mestre [Thu, 25 Mar 2021 16:23:39 +0000 (16:23 +0000)]
an invalid value of `mcs' may come from the hardware so adjust code so that the
value is only used after checking if it's valid or not.

CID 1502921

OK stsp@ phessler@

3 years agoUse length of line to indicate end of characters to process in
lum [Thu, 25 Mar 2021 12:46:11 +0000 (12:46 +0000)]
Use length of line to indicate end of characters to process in
foundparen(). No intended functional change. regress tests ok and they
all use excline().

3 years agoAdjust HTTP client code a bit. Add support for 304 Not Modified responses,
claudio [Thu, 25 Mar 2021 12:18:45 +0000 (12:18 +0000)]
Adjust HTTP client code a bit. Add support for 304 Not Modified responses,
remove handling of 206 Partial Content (the client does not use range
headers). Report the Last-Modified timestamp back to the requestor and
switch OK to a enum value for (FAIL, OK and NOT MODIFIED).
OK tb@

3 years agoProvide apm(4/arm64) with battery information
kn [Thu, 25 Mar 2021 12:18:27 +0000 (12:18 +0000)]
Provide apm(4/arm64) with battery information

apm merely provides an all zero/unknown stub for those values, e.g. apm(8)
output is useless.

Hardware sensors however provide this information:

hw.sensors.cwfg0.volt0=3.76 VDC (battery voltage)
hw.sensors.cwfg0.raw0=259 (battery remaining minutes)
hw.sensors.cwfg0.percent0=58.00% (battery percent)

Make cwfg(4) copy those over using apm_setinfohook() for apm to show it:

Battery state: high, 58% remaining, 259 minutes life estimate
A/C adapter state: not known
Performance adjustment mode: auto (408 MHz)

In cwfg's update routine, to keep values coherent, always reset them to
zero/unknown and only set those that came from a valid reading.

Input OK jca

3 years agoAdjust base64_decode() to just take a base64 string as input instead of
claudio [Thu, 25 Mar 2021 09:27:38 +0000 (09:27 +0000)]
Adjust base64_decode() to just take a base64 string as input instead of
a string plus length. Preparation work for RRDP.
OK tb@

3 years agoAvoid mangled output in BIO_debug_callback
tb [Thu, 25 Mar 2021 09:26:17 +0000 (09:26 +0000)]
Avoid mangled output in BIO_debug_callback

Instead of blindly skipping 14 characters, we can use the return
value of snprintf() to determine how much we should skip.

From Martin Vahlensieck with minor tweaks by me

3 years agoremove uneeded includes in md armv7 files
jsg [Thu, 25 Mar 2021 04:12:00 +0000 (04:12 +0000)]
remove uneeded includes in md armv7 files

based on include-what-you-use suggestions

3 years agoSync correct ROUNDUP() from net/route.c
tobhe [Thu, 25 Mar 2021 01:39:09 +0000 (01:39 +0000)]
Sync correct ROUNDUP() from net/route.c

3 years agoThe server only sends a cookie during a HRR, not a SH
tb [Wed, 24 Mar 2021 21:36:26 +0000 (21:36 +0000)]
The server only sends a cookie during a HRR, not a SH

3 years agotest HEAD requests, from niklas@
benno [Wed, 24 Mar 2021 21:03:06 +0000 (21:03 +0000)]
test HEAD requests, from niklas@

3 years agoResponses to HEAD requests must not have a message body (even though they have
benno [Wed, 24 Mar 2021 20:59:53 +0000 (20:59 +0000)]
Responses to HEAD requests must not have a message body (even though they have
a Content-Length header).  HTTP RFC 7231 section 4.3.2.
found by niklas@, claudio@ agrees.

3 years agoUpdate regress for new_cipher rename.
jsing [Wed, 24 Mar 2021 19:02:35 +0000 (19:02 +0000)]
Update regress for new_cipher rename.

3 years agoAdd mouse.tp.tapping example.
bru [Wed, 24 Mar 2021 18:50:54 +0000 (18:50 +0000)]
Add mouse.tp.tapping example.

ok kn@

3 years agosync
sthen [Wed, 24 Mar 2021 18:49:40 +0000 (18:49 +0000)]
sync

3 years agoremove vendor name (Dell) repeated in product name
sthen [Wed, 24 Mar 2021 18:49:25 +0000 (18:49 +0000)]
remove vendor name (Dell) repeated in product name

3 years agoRename new_cipher to cipher.
jsing [Wed, 24 Mar 2021 18:43:59 +0000 (18:43 +0000)]
Rename new_cipher to cipher.

This is in the SSL_HANDSHAKE struct and is what we're currently
negotiating, so there is really nothing more "new" about the cipher
than there is the key block or other parts of the handshake data.

ok inoguchi@ tb@

3 years agoAdd SSL_HANDSHAKE_TLS12 for TLSv1.2 specific handshake data.
jsing [Wed, 24 Mar 2021 18:40:03 +0000 (18:40 +0000)]
Add SSL_HANDSHAKE_TLS12 for TLSv1.2 specific handshake data.

Move TLSv1.2 specific components over from SSL_HANDSHAKE.

ok inoguchi@ tb@

3 years agoImprove the tap detection mechanism.
bru [Wed, 24 Mar 2021 18:28:24 +0000 (18:28 +0000)]
Improve the tap detection mechanism.

Revision 1.29 of wstpad.c has removed the 'maxdist' checks
for multi-finger taps.  While this change makes tap detection
more reliable, and does not affect inputs intended for pointer
movement, it might interfere with short scroll gestures.
This version reorganizes the filtering code, and reintroduces
a weaker version of those checks for MT touchpads.

3 years agocd9660, mfs: do not hide generic vop functions behind #define
semarie [Wed, 24 Mar 2021 16:17:05 +0000 (16:17 +0000)]
cd9660, mfs: do not hide generic vop functions behind #define

It makes clearer which vop functions are real fileystem-implementations and which one are only stubs.

No functional changes are intented.

ok visa@

3 years agomake some `struct vops' members explicitly NULL instead of implicitly NULL
semarie [Wed, 24 Mar 2021 16:11:32 +0000 (16:11 +0000)]
make some `struct vops' members explicitly NULL instead of implicitly NULL

ok mpi@

3 years agoMore timespec conversions. Less 'seconds' arithmetic.
krw [Wed, 24 Mar 2021 16:04:10 +0000 (16:04 +0000)]
More timespec conversions. Less 'seconds' arithmetic.

3 years agoThe logic in mmrw() to check whether an address is within direct
bluhm [Wed, 24 Mar 2021 14:26:39 +0000 (14:26 +0000)]
The logic in mmrw() to check whether an address is within direct
map was the wrong way around.  The && prevented an EFAULT error and
could pass userland addresses as kernel source to copyout(9).  The
kernel could crash with protection fault due to an invalid offset
when reading /dev/kmem.
Also make the range checks stricter.  Not only the start address
must be valid, but also the end address must be within the region
to be copied.
Note that sysctl kern.allowkmem=0 makes the bug unreachable by
default.
OK deraadt@

3 years agoConvert openssl(1) x509 option handling
inoguchi [Wed, 24 Mar 2021 12:09:16 +0000 (12:09 +0000)]
Convert openssl(1) x509 option handling

Apply new option handling to openssl(1) x509.
To handle incremental order value, using newly added OPTION_ORDER.

I left the descriptions for -CAform, -inform, and -outform as it was,
for now. These description would be fixed.
And digest option handler could be consolidated to one between
some subcommands in the future.

ok and comments from tb@,
and "I'd move forward with your current plan." from jsing@

3 years agoAdd option type OPTION_ORDER
inoguchi [Wed, 24 Mar 2021 12:07:39 +0000 (12:07 +0000)]
Add option type OPTION_ORDER

To handle incremental order value, added new option type OPTION_ORDER.
openssl(1) x509 requires this option handling, since,
- -CA and -signkey require to set both filename and incremental 'num'.
- -dates requires to set two variables in a row, startdate and enddate.
and this couldn't be solved by OPTION_FLAG_ORD.

ok tb@ and "I'd move forward with your current plan." from jsing@

3 years agoMake tap detection less restrictive for multi-finger taps.
bru [Wed, 24 Mar 2021 07:40:37 +0000 (07:40 +0000)]
Make tap detection less restrictive for multi-finger taps.

In order to distinguish tap gestures from short movements, the mechanism
checks whether the distance between the first and the last position of a
touch exceeds the 'maxdist' limit.  Some touchpads provide unreliable
coordinates when more than one contact is being made simultaneously, and
in this case the filter may be too strong - and superfluous, because only
one-finger contacts should trigger pointer movement.

3 years agoDefine a USB quirk for devices that need to keep their pipes open at
jcs [Wed, 24 Mar 2021 02:49:57 +0000 (02:49 +0000)]
Define a USB quirk for devices that need to keep their pipes open at
all times, before the device is enabled and after the device is
disabled by wscons.

This was originally needed by umt for the Microsoft Surface Type
Cover to avoid it resetting (or at least detaching and reattaching)
when the touchpad was touched while at the console.

A similar problem occurs with the Pinebook Pro's keyboard when
switching from X to the console due to the touchpad getting
disabled, so add it to ums as well.

with and ok kurt

3 years agoregen
jcs [Wed, 24 Mar 2021 02:21:40 +0000 (02:21 +0000)]
regen

3 years agoadd HAILUCK Keyboard
jcs [Wed, 24 Mar 2021 02:20:44 +0000 (02:20 +0000)]
add HAILUCK Keyboard

from kurt

3 years agoensure the long-name version of ld is in the base set (rather than the
deraadt [Wed, 24 Mar 2021 00:27:34 +0000 (00:27 +0000)]
ensure the long-name version of ld is in the base set (rather than the
comp set), as it is supposed to be hard-linked.
found by Yoshihiro Kawamata

3 years agoFix some ranges and type handling.
martijn [Tue, 23 Mar 2021 22:07:36 +0000 (22:07 +0000)]
Fix some ranges and type handling.

OK sthen@

3 years agoAdd DisplayString/SnmpAdminString in accordance with recent OPENBSD-PF-MIB
martijn [Tue, 23 Mar 2021 22:05:21 +0000 (22:05 +0000)]
Add DisplayString/SnmpAdminString in accordance with recent OPENBSD-PF-MIB
changes.

OK sthen@

3 years agoDon't send DELETE notify if IKE SA is replaced because of
tobhe [Tue, 23 Mar 2021 21:31:29 +0000 (21:31 +0000)]
Don't send DELETE notify if IKE SA is replaced because of
'enforcesingleikesa'.  Fixes an interop problem with strongswan
if make-before-break is enabled.

ok patrick@

3 years agoOCSP_basic_verify() doesn't set errno, so use tls_set_errorx()
tb [Tue, 23 Mar 2021 20:04:29 +0000 (20:04 +0000)]
OCSP_basic_verify() doesn't set errno, so use tls_set_errorx()

ok inoguchi

3 years agochange pfIfDescr and pfLogIfName from plain OCTET STRING (which has no
sthen [Tue, 23 Mar 2021 19:37:51 +0000 (19:37 +0000)]
change pfIfDescr and pfLogIfName from plain OCTET STRING (which has no
textual-convention so is sometimes printed as hex dump) to DisplayString
(ascii).

likewise change pfLabelName and pfTblName to SnmpAdminString (UTF-8
textual-convention).

feedback/tweaks (notably pointing out UTF-8)/ok martijn@

3 years agoUse a pointer called bufp to point to a buffer called bufn
lum [Tue, 23 Mar 2021 18:40:29 +0000 (18:40 +0000)]
Use a pointer called bufp to point to a buffer called bufn
consistantly.

3 years agoCorrect how many arguments some functions take for interpreter.c.
lum [Tue, 23 Mar 2021 18:33:05 +0000 (18:33 +0000)]
Correct how many arguments some functions take for interpreter.c.

3 years agoUse time_t for intermediate lease time values when calculating human
florian [Tue, 23 Mar 2021 17:46:20 +0000 (17:46 +0000)]
Use time_t for intermediate lease time values when calculating human
readable output for very long timeouts to prevent overflow.
While here add years and days.
Days might actually show up in normal leases. Years is to catch
"infinity" which is encoded as UINT32_MAX and used by vmd(8).
Previously we would overflow, wrap to negative which then got
transformed to 0s.
Pointed out by Dave Voutila while working on the vmd(8) dhcp code.

3 years agoTimed out RSA key ops, may leave uncalled for responses in the imsg return
claudio [Tue, 23 Mar 2021 16:34:31 +0000 (16:34 +0000)]
Timed out RSA key ops, may leave uncalled for responses in the imsg return
path.  These have to be dropped or every subsequent call will cause decrypt
errors. Use a sequence number cookie to keep the systems in sync.
Diff from niklas@ with some minor adjustments by myself.

3 years agoDocument SIOCGIFADDR and SIOCSIFADDR ioctls for tap devices.
claudio [Tue, 23 Mar 2021 16:26:53 +0000 (16:26 +0000)]
Document SIOCGIFADDR and SIOCSIFADDR ioctls for tap devices.
OK kn@

3 years agoMake a parameter to an mg function not throw an error just
lum [Tue, 23 Mar 2021 15:22:25 +0000 (15:22 +0000)]
Make a parameter to an mg function not throw an error just
because it is numerical.

3 years agoDocument the @version suffix that can be added when running 'portgen go'
abieber [Tue, 23 Mar 2021 13:22:16 +0000 (13:22 +0000)]
Document the @version suffix that can be added when running 'portgen go'

Patch from Josh Rickmar. Ty jrick!

3 years agoFix a corner case bug in Rx block ack window gap-wait timeout handling.
stsp [Tue, 23 Mar 2021 12:03:44 +0000 (12:03 +0000)]
Fix a corner case bug in Rx block ack window gap-wait timeout handling.

If ieee80211_input_ba_flush() was called when there was nothing to flush,
the (already pending) gap wait timeout was re-armed.
This is only correct if we flush at least one packet. Otherwise packets
that arrive at a constant rate of about 4-5 packets per second would
extend the gap-wait timeout until the block ack window fills up.
In extreme cases this can result in packets being queued for almost 20s.

Fix this by returning immediately from ieee80211_input_ba_flush() if
the first packet in the reordering buffer is missing.
This prevents the timeout from being re-armed.

Patch by Christian Ehrhardt. Tested by me on iwm(4) 7265.

3 years agoWhen moving the Rx block ack window forward do not implicitly rely on
stsp [Tue, 23 Mar 2021 11:58:38 +0000 (11:58 +0000)]
When moving the Rx block ack window forward do not implicitly rely on
ieee80211_input_ba_flush() for updating ba->ba_winend.

Required for an upcoming ieee80211_input_ba_flush() fix.

Patch by Christian Ehrhardt who found one instance of this problem in
ieee80211_input_ba_seq(). I spotted another in ieee80211_ba_move_window().

3 years agoMake a child execute fork_return() only if PTRACE_FORK has been specified.
mpi [Tue, 23 Mar 2021 10:30:40 +0000 (10:30 +0000)]
Make a child execute fork_return() only if PTRACE_FORK has been specified.

fork_return() does an additional check to send a SIGTRAP (for a debugger)
but this signal might overwrite the SIGSTOP generated by the parent doing
a PT_ATTACH before the child has a change to execute any instruction.

Prevent a race visible only on SP system with regress/sys/kern/ptrace2.

ok kettenis@

3 years agoSkip first frame when saving stacktraces, it's always witness_checkorder().
mpi [Tue, 23 Mar 2021 10:22:20 +0000 (10:22 +0000)]
Skip first frame when saving stacktraces, it's always witness_checkorder().

ok visa@

3 years agoPack the SPCR struct definition since the struct isn't naturally aligned
patrick [Tue, 23 Mar 2021 09:41:12 +0000 (09:41 +0000)]
Pack the SPCR struct definition since the struct isn't naturally aligned
or padded, and hence e. g. the access to the PCI vendor/device id would be
broken.  The structs for the other tables all seem to be packed as well.

ok kettenis@

3 years agoNow that MSI pages are properly mapped, all that debug code in smmu(4)
patrick [Mon, 22 Mar 2021 20:34:45 +0000 (20:34 +0000)]
Now that MSI pages are properly mapped, all that debug code in smmu(4)
can be removed.  The only thing left to implement for smmu(4) to work
out of the box with PCIe devices is to reserve the PCIe MMIO windows.
Let's see how we can do this properly.

3 years agoDon't leak ca in test_cms_sign_verify().
tb [Mon, 22 Mar 2021 20:31:34 +0000 (20:31 +0000)]
Don't leak ca in test_cms_sign_verify().

Reported by Ilya Shipitsin

3 years agoLoad MSI pages through bus_dma(9). Our interrupt controllers for MSIs
patrick [Mon, 22 Mar 2021 20:30:21 +0000 (20:30 +0000)]
Load MSI pages through bus_dma(9).  Our interrupt controllers for MSIs
typically pass the physical address, however retrieved, to our PCIe
controller code.  This physical address can in practise be directly
given to the PCIe, but it is not a given that the CPU and the PCIe
controller are able to use the same physical addresses.

This is even more obvious with an smmu(4) inbetween, which can change
the world view by introducing I/O virtual addresses.  Hence for this
it is indeed necessary to map those pages, which thanks to integration
with bus_dma(9) works easily.

For this we remember the PCI devices' DMA tag in the interrupt handle
during the MSI map, so that we can use the smmu(4)-hooked DMA tag to
load the physical address.

While some systems might prefer to implement "trapping" pages for MSIs,
to make sure devices cannot trigger other devices' interrupts, we only
make sure the whole page is mapped.

Having the IOMMU create a mapping for each MSI is a bit wasteful, but
for now it's the simplest way to implement it.

Discussed with and ok kettenis@

3 years agoPlug a few memory leaks reported by Ilya Shipitsin
tb [Mon, 22 Mar 2021 20:05:21 +0000 (20:05 +0000)]
Plug a few memory leaks reported by Ilya Shipitsin

3 years agoProperly reflect stopping state
kn [Mon, 22 Mar 2021 18:50:11 +0000 (18:50 +0000)]
Properly reflect stopping state

Diff from Preben Guldberg < preben at guldberg dot org>, thanks!

In "vmctl status", VMs that are being stopped but are still running
will simply show up as "running".

Give preference to showing the "stopping" state akin to how a paused
VM is handled.

Tested by Dave Voutila
OK tb

3 years agoUpdate device-tree bindings
kn [Mon, 22 Mar 2021 18:37:26 +0000 (18:37 +0000)]
Update device-tree bindings

Using the DTB from our dtb package this driver no longer attaches
(on a Pinebook Pro)due to renamed bindings:
https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml

Thanks to kettenis and patrick for pointing this out.

Follow upstream's rename and acccount for the monitor interval now being
milliseconds not seconds anymore.

This makes cwfg(4) export values under hw.sensors as expected when using
/usr/local/share/dtb/arm64/rockchip/rk3399-pinebook-pro.dtb .

Input patrick kettenis
OK kettenis

3 years agoBOOTP has a minimum packet length of 300 bytes. Since DHCP is
florian [Mon, 22 Mar 2021 16:28:25 +0000 (16:28 +0000)]
BOOTP has a minimum packet length of 300 bytes. Since DHCP is
interoperable with BOOTP we should also send packets that have a
minimum size of 300.
I haven't seen a DHCP server that actually enforces this except the
one in vmd(8), but it doesn't cost us much and prevents hair pulling
later on when we find one in the wild.
OK deraadt

3 years agoAvoid overflow by writing x = (y * 7) / 8 as x = y - (y / 8); ok florian
otto [Mon, 22 Mar 2021 15:34:07 +0000 (15:34 +0000)]
Avoid overflow by writing x = (y * 7) / 8 as x = y - (y / 8); ok florian

3 years agoRemove unveil() from the rsync_sender() and flist_gen(). The sender is
claudio [Mon, 22 Mar 2021 11:49:15 +0000 (11:49 +0000)]
Remove unveil() from the rsync_sender() and flist_gen(). The sender is
not able to properly unveil itself because you can request many files
as arguments. At the same time the sender is read-only and uses rpath
pledge() so the gain from unveil() is less of an issue.
On the receiver side all files land in one directory and this part still
uses unveil() to protect rsync to somehow walk out of the destination
directory.
From kristaps@

3 years agoAdjust function name in error strings.
claudio [Mon, 22 Mar 2021 11:26:44 +0000 (11:26 +0000)]
Adjust function name in error strings.
From kristaps@

3 years agoAdjust a type to unsigned since the io function works on unsigned ints.
claudio [Mon, 22 Mar 2021 11:25:29 +0000 (11:25 +0000)]
Adjust a type to unsigned since the io function works on unsigned ints.
Also the id is a strictly positve integer so this make sense.
Cleanup comments and a spacing while there.
From kristaps@

3 years agoPut comment where it belongs also remove an assert() that checks for an
claudio [Mon, 22 Mar 2021 11:20:04 +0000 (11:20 +0000)]
Put comment where it belongs also remove an assert() that checks for an
impossible condition. The map argument is from a pread() call and can never
be MAP_FAILED.
From kristaps@

3 years agoCompare explicitly against NULL.
claudio [Mon, 22 Mar 2021 11:16:05 +0000 (11:16 +0000)]
Compare explicitly against NULL.
From kristaps@

3 years agoMake fmt argument const. Format local vars a bit.
claudio [Mon, 22 Mar 2021 11:14:42 +0000 (11:14 +0000)]
Make fmt argument const. Format local vars a bit.
From kristaps@

3 years agoLet iwn(4) simply clear frames before the firmware's BA window, instead
stsp [Mon, 22 Mar 2021 09:52:49 +0000 (09:52 +0000)]
Let iwn(4) simply clear frames before the firmware's BA window, instead
of trying to be smart and clearing already acknowledged frames which are
still within the firmware's BA window.

This matches what the Linux driver does and makes our driver code simpler.

Also, Tx rate control code relies on sequence numbers falling into the
BA window so let's skip Tx rate control for frames before this window.

Tested by:
myself on 6205 and 6300
afresh1, bluhm, and paco on 6300
jmatthew on 5100
Balder Oddson on 6205