openbsd
3 years agotrim some code i accidentally left into the nvgre add address function
dlg [Sat, 27 Feb 2021 09:21:22 +0000 (09:21 +0000)]
trim some code i accidentally left into the nvgre add address function

3 years agorecover scope from v6 nvgre endpoint addresses for userland to look at.
dlg [Sat, 27 Feb 2021 09:20:38 +0000 (09:20 +0000)]
recover scope from v6 nvgre endpoint addresses for userland to look at.

3 years agoIt is perfectly fine to POLLIN and POLLOUT at the same time. It may
claudio [Sat, 27 Feb 2021 08:59:29 +0000 (08:59 +0000)]
It is perfectly fine to POLLIN and POLLOUT at the same time. It may
actually make things a bit faster.
OK deraadt@

3 years agoHandle NULL term_type.
nicm [Sat, 27 Feb 2021 06:28:16 +0000 (06:28 +0000)]
Handle NULL term_type.

3 years agoregen
jsg [Sat, 27 Feb 2021 03:04:22 +0000 (03:04 +0000)]
regen

3 years agosort and fix RTL8713 id
jsg [Sat, 27 Feb 2021 03:03:40 +0000 (03:03 +0000)]
sort and fix RTL8713 id

3 years agoregen
jsg [Sat, 27 Feb 2021 03:01:25 +0000 (03:01 +0000)]
regen

3 years agosort
jsg [Sat, 27 Feb 2021 03:00:54 +0000 (03:00 +0000)]
sort

3 years agoregen
jsg [Sat, 27 Feb 2021 02:37:06 +0000 (02:37 +0000)]
regen

3 years agoadd ids for Intel Xeon Scalable
jsg [Sat, 27 Feb 2021 02:36:33 +0000 (02:36 +0000)]
add ids for Intel Xeon Scalable

Used by at least Skylake-SP (SKX) and Cascade Lake-SP (CLX).

Covers Xeon Scalable, Xeon D, Xeon W, Core Extreme/Core X product
families.  The Scalable parts are marketed as Xeon Bronze, Silver, Gold
and Platinum.

As most of these ids are not described in public documents from Intel
use Skylake-ESystem.inf and KabyLakePCH-HSystem.inf from Intel's Windows
drivers to get an idea of what the names should be.  With the name for
0x2088 found in a Intel authored Linux driver.

Initial patch and much discussion from Karel Gardas.

3 years agoput the mac addr into a uint64_t to compare it to the ethernet slow addr.
dlg [Sat, 27 Feb 2021 01:19:11 +0000 (01:19 +0000)]
put the mac addr into a uint64_t to compare it to the ethernet slow addr.

also do the ethertype comparison before the conversion above.

3 years agoCheck session, window, pane in the right order when working out format type.
nicm [Fri, 26 Feb 2021 21:53:41 +0000 (21:53 +0000)]
Check session, window, pane in the right order when working out format type.

3 years agoSet RTF_GATEWAY for flow routes, not for host route.
tobhe [Fri, 26 Feb 2021 21:06:02 +0000 (21:06 +0000)]
Set RTF_GATEWAY for flow routes, not for host route.

3 years agoFix and improve handling of address families in vroute_getcloneroute().
tobhe [Fri, 26 Feb 2021 20:22:11 +0000 (20:22 +0000)]
Fix and improve handling of address families in vroute_getcloneroute().

ok patrick@

3 years agoShip resolvd service, enable it by default
kn [Fri, 26 Feb 2021 18:29:16 +0000 (18:29 +0000)]
Ship resolvd service, enable it by default

Starting right after unwind.

OK deraadt

3 years agoIgnore SIGHUP
kn [Fri, 26 Feb 2021 18:28:07 +0000 (18:28 +0000)]
Ignore SIGHUP

It should always run and there is no reload semantic.

OK deraadt

3 years agosync; OK deraadt
florian [Fri, 26 Feb 2021 17:20:07 +0000 (17:20 +0000)]
sync; OK deraadt

3 years agoCreate /var/db/dhcpleased for lease files.
florian [Fri, 26 Feb 2021 17:19:21 +0000 (17:19 +0000)]
Create /var/db/dhcpleased for lease files.
OK deraadt@

3 years agorc(8) bits for dhcpleased(8).
florian [Fri, 26 Feb 2021 17:18:41 +0000 (17:18 +0000)]
rc(8) bits for dhcpleased(8).
OK deraadt

3 years agoHook up dhcpleased to the build.
florian [Fri, 26 Feb 2021 17:17:03 +0000 (17:17 +0000)]
Hook up dhcpleased to the build.
OK deraadt

3 years agoSort SEE ALSO and fix its punctuation.
tb [Fri, 26 Feb 2021 17:14:25 +0000 (17:14 +0000)]
Sort SEE ALSO and fix its punctuation.

3 years agoImport dhcpleased(8) - a dhcp daemon to acquire IPv4 address leases
florian [Fri, 26 Feb 2021 16:16:37 +0000 (16:16 +0000)]
Import dhcpleased(8) - a dhcp daemon to acquire IPv4 address leases
from servers.

dhcpleased(8) follows the well known three process design of all our
privsep daemons. It uses pledge(2) and unveil(2) to restrict access
further. In particular the "engine" process, responsible for parsing
of untrusted data, is pledge'd "stdio". It cannot access the outside
world nor the filesystem at all.

Like slaacd(8) for IPv6 it will be always running and acquire addresses
for all interface with the autoconf4 flag set.
The flag can be set by "ifconfig $if inet autoconf" or by adding
"inet autoconf" to /etc/hostname.if. An existing "dhcp" line should
be removed.

Various iterations tested by deraadt@
The hardest part, finding a name, was handled by jmatthew@ & otto@

"get to it :)" deraadt@

3 years agoSet is_trusted in x509_verify_ctx_add_chain()
tb [Fri, 26 Feb 2021 15:19:41 +0000 (15:19 +0000)]
Set is_trusted in x509_verify_ctx_add_chain()

If we're about to add a chain we have a trust path, so we have at least
one trusted certificate. This fixes a thinko from r1.31 and fixes the
openssl(1) cms verify test.

ok jsing (who had the same diff)

3 years agozap spades of trailing whitespace
tb [Fri, 26 Feb 2021 15:15:40 +0000 (15:15 +0000)]
zap spades of trailing whitespace

3 years agoRead and parse OTP on the BCM4378. There are quite a few firmware and
patrick [Fri, 26 Feb 2021 12:33:59 +0000 (12:33 +0000)]
Read and parse OTP on the BCM4378.  There are quite a few firmware and
nvram files used for the different Apple devices.  The device tree and
the OTP hold the information which of those we will have to use.  For
now this information will simply be printed, but depending on how we
choose to do the firmare distribution we could use it for loadfirmware().

3 years agoAttach to BCM4378.
patrick [Fri, 26 Feb 2021 12:29:36 +0000 (12:29 +0000)]
Attach to BCM4378.

3 years agoAdd support for BCM4378 as implemented on the Apple M1. This chip seems
patrick [Fri, 26 Feb 2021 12:28:45 +0000 (12:28 +0000)]
Add support for BCM4378 as implemented on the Apple M1.  This chip seems
to use a different set of PCIE2REG registers.  Accessing the "old" ones
even leads to faults.  There are two surprises though.  One is that it
seems that the interrupt status register always returns 0, and the other
one is that we receive the interrupts way too early, but both can be
worked around for now.

3 years agotouch pcidevs again to generated new rcs ids in headers
jan [Fri, 26 Feb 2021 11:41:02 +0000 (11:41 +0000)]
touch pcidevs again to generated new rcs ids in headers

advince from sthen@

3 years agoOnly support #iommu-cells = <1> for now to make sure the correct stream ID
kettenis [Fri, 26 Feb 2021 11:28:13 +0000 (11:28 +0000)]
Only support #iommu-cells = <1> for now to make sure the correct stream ID
is passed to the IOMMU device driver.

ok patrick@

3 years agoIncrease the amount of RX buffers given to the bwfm(4) chip. We haave seen
patrick [Fri, 26 Feb 2021 11:22:10 +0000 (11:22 +0000)]
Increase the amount of RX buffers given to the bwfm(4) chip.  We haave seen
this already on previous chips, which only started giving us packets when
handing over at least 128 of them.  Apparently some now require 256, which
seems to get the Apple M1's WiFi going.

3 years agoAdd aplcpie(4), a (minimal) driver for the PCIe host bridge on Apple M1 SoCs.
kettenis [Fri, 26 Feb 2021 11:09:23 +0000 (11:09 +0000)]
Add aplcpie(4), a (minimal) driver for the PCIe host bridge on Apple M1 SoCs.

ok patrick@

3 years agoAdd missing PCI product IDs for x710 10GBase-T into ixl(4)
jan [Fri, 26 Feb 2021 10:36:45 +0000 (10:36 +0000)]
Add missing PCI product IDs for x710 10GBase-T into ixl(4)

OK phessler

3 years agoonly store the current time on address table entries if it changes.
dlg [Fri, 26 Feb 2021 08:31:23 +0000 (08:31 +0000)]
only store the current time on address table entries if it changes.

this avoids unecessary writes to memory. it helps a little bit with
a single nettq, but we get a lot more of a boost in pps when running
concurrently.

thanks to hrvoje for testing.

3 years agoAdd a couple of format variables for active and last window index.
nicm [Fri, 26 Feb 2021 07:53:26 +0000 (07:53 +0000)]
Add a couple of format variables for active and last window index.

3 years agoSome more improvements from Joachim Wiberg's version of mg.
lum [Fri, 26 Feb 2021 07:21:23 +0000 (07:21 +0000)]
Some more improvements from Joachim Wiberg's version of mg.
check before using variable in list
remove unnecessary variable declaration
check value of adjustname()
add a '< 0' return value of snprintf

3 years agosync
deraadt [Fri, 26 Feb 2021 04:25:44 +0000 (04:25 +0000)]
sync

3 years agoremove this KEX fuzzer; it's awkward to use and doesn't play nice
djm [Fri, 26 Feb 2021 04:18:42 +0000 (04:18 +0000)]
remove this KEX fuzzer; it's awkward to use and doesn't play nice
with popular fuzzing drivers like libfuzzer. AFAIK nobody has used
it but me.

3 years agoremove some unused functions in slaacd
jsg [Fri, 26 Feb 2021 02:28:50 +0000 (02:28 +0000)]
remove some unused functions in slaacd

ok florian@

3 years agotpmr can use the eth64 bits too.
dlg [Fri, 26 Feb 2021 02:09:45 +0000 (02:09 +0000)]
tpmr can use the eth64 bits too.

3 years agotry do a better job of filtering 802.1 reserved group addresses.
dlg [Fri, 26 Feb 2021 01:57:20 +0000 (01:57 +0000)]
try do a better job of filtering 802.1 reserved group addresses.

if the bridge is supposed to carry vlan packets, assuming it's an
s-vlan component and should allow certain group addresses to cross
between "customer" bridges.

i should probably let some of these groups fall back through to the
calling ether_input rather than drop them.

3 years agoFix Typo, ok jca
danj [Fri, 26 Feb 2021 01:46:52 +0000 (01:46 +0000)]
Fix Typo, ok jca

3 years agouse uint64_ts for ethernet addresses in the src/dst bits of rules.
dlg [Fri, 26 Feb 2021 01:42:47 +0000 (01:42 +0000)]
use uint64_ts for ethernet addresses in the src/dst bits of rules.

3 years agouse a uint64_t for the ethernet address in the etherbridge table.
dlg [Fri, 26 Feb 2021 01:28:51 +0000 (01:28 +0000)]
use a uint64_t for the ethernet address in the etherbridge table.

testing has shown up to a 30% improvement in the veb forwarding
rate with this change.

an earlier diff was tested by hrvoje popovski
tested on amd64 and sparc64

3 years agoSome improvements from Joachim Wiberg's version of mg.
lum [Fri, 26 Feb 2021 01:17:21 +0000 (01:17 +0000)]
Some improvements from Joachim Wiberg's version of mg.
check value of adjustname()
use int for return value of snprintf

3 years agoadd some helpers for working with ethernet addresses as uint64_t
dlg [Fri, 26 Feb 2021 01:12:37 +0000 (01:12 +0000)]
add some helpers for working with ethernet addresses as uint64_t

the main bits are ether_addr_to_e64 and ether_e64_to addr for loading
an ethernet address into a uin64_t and visa versa. there's also
some macros for testing if an address in a uint64_t is multicast,
broadcast, anyaddr, or if it's an 802.1q reserved multicast group
address.

the reason for this functionality is once you have an ethernet
address as a uint64_t, operations like compares, bit tests, and
so on are fast and easy.

tested on amd64 and sparc64

3 years agoAdd my copyright since I added most of the content
danj [Fri, 26 Feb 2021 00:44:42 +0000 (00:44 +0000)]
Add my copyright since I added most of the content

3 years agoIncrease the buffer size for the ioctl response buffers to the same as
patrick [Fri, 26 Feb 2021 00:19:41 +0000 (00:19 +0000)]
Increase the buffer size for the ioctl response buffers to the same as
used in the wifi firmware to ensure responses can be received.

3 years agoa bit more debugging behind #ifdef DEBUG_SK
djm [Fri, 26 Feb 2021 00:16:58 +0000 (00:16 +0000)]
a bit more debugging behind #ifdef DEBUG_SK

3 years agogcc is more strict about union decls
deraadt [Fri, 26 Feb 2021 00:16:41 +0000 (00:16 +0000)]
gcc is more strict about union decls
ok dlg

3 years agoIndicate hostready signal to inform the firmware that the rings have been
patrick [Fri, 26 Feb 2021 00:14:28 +0000 (00:14 +0000)]
Indicate hostready signal to inform the firmware that the rings have been
initialized.

3 years agoRefactor bwfm(4) firmware loading. The PCIe backend will need to be able
patrick [Fri, 26 Feb 2021 00:07:41 +0000 (00:07 +0000)]
Refactor bwfm(4) firmware loading.  The PCIe backend will need to be able
to load the CLM blob like the SDIO backend already does.  Additionally it
is also helpful for the PCIe backend to try a file named after the device
tree compatible.  Thus refactor the SDIO code and make it available for
both SDIO and PCIe.

3 years agoFix prio2fifo mapping table.
patrick [Fri, 26 Feb 2021 00:02:07 +0000 (00:02 +0000)]
Fix prio2fifo mapping table.

3 years agoThe firmware replaces the last 32-bit on RAM with a shared DRAM address.
patrick [Thu, 25 Feb 2021 23:59:54 +0000 (23:59 +0000)]
The firmware replaces the last 32-bit on RAM with a shared DRAM address.
While the for-loop checks that thie value has changed since we wrote to
it, the timeout-condition checked for non-zero, which is wrong.  This
means that we didn't realize the firmware wasn't started.  While there,
make sure the shared DRAM address is inside the chip's address space.

3 years agoSome newer chips have two D11/802.11 cores, and we need to reset both at
patrick [Thu, 25 Feb 2021 23:55:41 +0000 (23:55 +0000)]
Some newer chips have two D11/802.11 cores, and we need to reset both at
the same time.

3 years agoSupport for version 7 of the bwfm(4) PCIe interface. The size of the items
patrick [Thu, 25 Feb 2021 23:26:05 +0000 (23:26 +0000)]
Support for version 7 of the bwfm(4) PCIe interface.  The size of the items
on the rx/tx complete rings has increased slightly to accomodate possible
new features.

3 years agoAdd some infrastructure in the PCI chipset tag for pci_probe_device_hook()
patrick [Thu, 25 Feb 2021 23:07:48 +0000 (23:07 +0000)]
Add some infrastructure in the PCI chipset tag for pci_probe_device_hook()
so that we can provide IOMMU-hooked bus DMA tags for each PCI device.

ok kettenis@

3 years agomention that FIX_CRLF_FILES is rooted in WRKDIST, pointed out by espie@.
sthen [Thu, 25 Feb 2021 23:06:52 +0000 (23:06 +0000)]
mention that FIX_CRLF_FILES is rooted in WRKDIST, pointed out by espie@.
mention that shell wildcards may be used.

3 years agowrong annotation
espie [Thu, 25 Feb 2021 22:58:27 +0000 (22:58 +0000)]
wrong annotation

3 years agomake the timing of FIX_CRLF_FILES explicit
espie [Thu, 25 Feb 2021 22:41:51 +0000 (22:41 +0000)]
make the timing of FIX_CRLF_FILES explicit

3 years agoAdd a framework for IOMMUs.
kettenis [Thu, 25 Feb 2021 22:14:54 +0000 (22:14 +0000)]
Add a framework for IOMMUs.

ok patrick@

3 years agodocument FIX_CRLF_FILES.
sthen [Thu, 25 Feb 2021 21:46:25 +0000 (21:46 +0000)]
document FIX_CRLF_FILES.

3 years agoftp: prevent double free() in error path
naddy [Thu, 25 Feb 2021 20:51:55 +0000 (20:51 +0000)]
ftp: prevent double free() in error path

Reported by bentley@; ok bentley@ jca@

3 years agoConstify cipher API.
tobhe [Thu, 25 Feb 2021 20:13:24 +0000 (20:13 +0000)]
Constify cipher API.

ok markus@

3 years agoTypofix
kn [Thu, 25 Feb 2021 20:04:38 +0000 (20:04 +0000)]
Typofix

3 years agoFix two bugs in the legacy verifier
tb [Thu, 25 Feb 2021 17:29:22 +0000 (17:29 +0000)]
Fix two bugs in the legacy verifier

To integrate the new X.509 verifier, X509_verify_cert() was refactored.
The code building chains in the legacy verifier was split into a
separate function. The first bug is that its return value was treated
as a Boolean although it wasn't. Second, the return alone is not enough
to decide whether to carry on the validation or not.

Slightly rearrange things to restore the behavior of the legacy verifier
prior to this refactoring.

Issue found and test case provided by Anton Borowka and jan.

ok jan jsing

3 years agoUpdate regress to match TLS versions change.
jsing [Thu, 25 Feb 2021 17:07:52 +0000 (17:07 +0000)]
Update regress to match TLS versions change.

3 years agoOnly use TLS versions internally (rather than both TLS and DTLS versions).
jsing [Thu, 25 Feb 2021 17:06:05 +0000 (17:06 +0000)]
Only use TLS versions internally (rather than both TLS and DTLS versions).

DTLS protocol version numbers are the 1's compliment of human readable TLS
version numbers, which means that newer versions decrease in value and
there is no direct mapping between TLS protocol version numbers and DTLS
protocol version numbers.

Rather than having to deal with this internally, only use TLS versions
internally and map between DTLS and TLS protocol versions when necessary.
Rename functions and variables to use 'tls_version' when they contain a
TLS version (and never a DTLS version).

ok tb@

3 years agoRename depth to num_untrusted so it identifies what it actually represents.
jsing [Thu, 25 Feb 2021 16:58:59 +0000 (16:58 +0000)]
Rename depth to num_untrusted so it identifies what it actually represents.

ok tb@

3 years agoAvoid passing last and depth to x509_verify_cert_error() on ENOMEM.
jsing [Thu, 25 Feb 2021 16:57:10 +0000 (16:57 +0000)]
Avoid passing last and depth to x509_verify_cert_error() on ENOMEM.

In x509_verify_ctx_set_xsc_chain(), an ENOMEM case is currently passing
the last certificate and depth (which is no longer actually depth) to
x509_verify_cert_error(). Given we've hit an ENOMEM situation, neither
of these are useful so remove both.

ok tb@

3 years ago- Make use of the fact that we know how the chunks are aligned, and
otto [Thu, 25 Feb 2021 15:20:18 +0000 (15:20 +0000)]
- Make use of the fact that we know how the chunks are aligned, and
write 8 bytes at the time by using a uint64_t pointer. For an
allocation a max of 4 such uint64_t's are written spread over the
allocation. For pages sized and larger, the first page is junked in
such a way.
- Delayed free of a small chunk checks the corresponiding way.
- Pages ending up in the cache are validated upon unmapping or re-use.
In snaps for a while

3 years agosplit off the large module documentations, so that port-modules is less of
espie [Thu, 25 Feb 2021 09:13:18 +0000 (09:13 +0000)]
split off the large module documentations, so that port-modules is less of
a monster.

okay sthen@

3 years agoPrevent zero size devices from attaching
jan [Thu, 25 Feb 2021 07:30:36 +0000 (07:30 +0000)]
Prevent zero size devices from attaching

This also fixes two NULL ptr derefs in later code path.

OK patick@, krw@

3 years agos/PubkeyAcceptedKeyTypes/PubkeyAcceptedAlgorithms/
djm [Thu, 25 Feb 2021 03:27:34 +0000 (03:27 +0000)]
s/PubkeyAcceptedKeyTypes/PubkeyAcceptedAlgorithms/

3 years agowe don't have to cast to caddr_t when calling m_copydata anymore.
dlg [Thu, 25 Feb 2021 02:48:19 +0000 (02:48 +0000)]
we don't have to cast to caddr_t when calling m_copydata anymore.

the first cut of this diff was made with coccinelle using this spatch:

@rule@
type caddr_t;
expression m, off, len, cp;
@@
-m_copydata(m, off, len, (caddr_t)cp)
+m_copydata(m, off, len, cp)

i had fix it's opinionated idea of formatting by hand though, so
i'm not sure it was worth it.

ok deraadt@ bluhm@

3 years agolet m_copydata use a void * instead of caddr_t
dlg [Thu, 25 Feb 2021 02:43:31 +0000 (02:43 +0000)]
let m_copydata use a void * instead of caddr_t

i'm not a fan of having to cast to caddr_t when we have modern
inventions like void *s we can take advantage of.

ok claudio@ mvs@ bluhm@

3 years agoenable veb(4), it's time for wider testing.
dlg [Thu, 25 Feb 2021 01:19:35 +0000 (01:19 +0000)]
enable veb(4), it's time for wider testing.

apart from the semantic differences between bridge(4) and veb(4),
the only missing bits in veb(4) is the transparent ipsec interception
support, and spanning tree.

3 years agoFix SMALL build
kn [Thu, 25 Feb 2021 00:38:59 +0000 (00:38 +0000)]
Fix SMALL build

OK deraadt

3 years agoadd support for hashing 64 and 32 bit numbers in host byte order.
dlg [Wed, 24 Feb 2021 23:44:04 +0000 (23:44 +0000)]
add support for hashing 64 and 32 bit numbers in host byte order.

3 years agosync
deraadt [Wed, 24 Feb 2021 23:33:44 +0000 (23:33 +0000)]
sync

3 years agoRename pubkeyacceptedkeytypes to pubkeyacceptedalgorithms in test to
dtucker [Wed, 24 Feb 2021 23:12:35 +0000 (23:12 +0000)]
Rename pubkeyacceptedkeytypes to pubkeyacceptedalgorithms in test to
match change to config-dump output.

3 years agoUse ASN1_STRING_get0_data() instead of the deprecated ASN1_STRING_data().
tobhe [Wed, 24 Feb 2021 22:17:48 +0000 (22:17 +0000)]
Use ASN1_STRING_get0_data() instead of the deprecated ASN1_STRING_data().

From Moritz Schmitt
ok patrick@

3 years agobuild resolvd
deraadt [Wed, 24 Feb 2021 19:21:41 +0000 (19:21 +0000)]
build resolvd

3 years agoMore accurately describe the DNS proposal sources and reaction by resolvd.
deraadt [Wed, 24 Feb 2021 19:00:38 +0000 (19:00 +0000)]
More accurately describe the DNS proposal sources and reaction by resolvd.
with jmc

3 years agofairly significant rewrite, including:
deraadt [Wed, 24 Feb 2021 19:00:08 +0000 (19:00 +0000)]
fairly significant rewrite, including:
replace poll+kevent with kevent only.
lockfile to block starting of 2nd instance.
remove state file, and recognize '# resolvd: ' lines as state
handle DNS proposal withdraws better
Still a work in progress.
tested and looked at by semarie, benno, florian, dlg

3 years agoWe need to track the pid of the connecting control connection to be
florian [Wed, 24 Feb 2021 18:34:14 +0000 (18:34 +0000)]
We need to track the pid of the connecting control connection to be
able to send answers back to the correct client in case two are
connecting at the same time. We also need to pass the pid around to
the resolver process so that it can hand it back to us.
Debugged by deraadt and dlg who noticed that answers would always
arrive on the first control connection.

deraadt@ points out that tracking the pid is not the best choice in
case one process wants to hold open two connections but at least this
brings us in line with all the other privsep daemons with control
tools. If we change this we should change it in all daemons.

3 years agoImport resold(8), a daemon to rewrite resolv.conf.
florian [Wed, 24 Feb 2021 18:10:41 +0000 (18:10 +0000)]
Import resold(8), a daemon to rewrite resolv.conf.
prodding deraadt

3 years agoFix comment explaining last_untrusted. This should really be called
tb [Wed, 24 Feb 2021 18:01:31 +0000 (18:01 +0000)]
Fix comment explaining last_untrusted. This should really be called
num_untrusted, but unfortunately it's public...

ok jsing tobhe

3 years agoMake the new validator check for EXFLAG_CRITICAL
tb [Wed, 24 Feb 2021 17:59:05 +0000 (17:59 +0000)]
Make the new validator check for EXFLAG_CRITICAL

As should be obvious from the name and the comment in x509_vfy.h
int last_untrusted;     /* index of last untrusted cert */
last_untrusted actually counts the number of untrusted certs at the
bottom of the chain.

Unfortunately, an earlier fix introducing x509_verify_set_xsc_chain()
assumed that last_untrusted actually meant the index of the last
untrusted cert in the chain, resulting in an off-by-one, which in turn
led to x509_vfy_check_chain_extension() skipping the check for the
EXFLAG_CRITICAL flag.

A second bug in x509_verify_set_xsc_chain() assumed that it is always
called with a trusted root, which is not necessarily the case anymore.
Address this with a temporary fix which will have to be revisited once
we will allow chains with more than one trusted cert.

Reported with a test case by tobhe.

ok jsing tobhe

3 years agoComplete deleting ifi->active before calling write_lease_db().
krw [Wed, 24 Feb 2021 16:53:18 +0000 (16:53 +0000)]
Complete deleting ifi->active before calling write_lease_db().

No functional change but a bit more obvious and shrinks upcoming diff.

3 years agoNo need to get time() twice. Just use the already
krw [Wed, 24 Feb 2021 16:36:47 +0000 (16:36 +0000)]
No need to get time() twice. Just use the already
obtained cur_time to initialize a missing lease->epoch.

3 years agoNo need to check ifi->active for NULL when looking for duplicate/obsolete
krw [Wed, 24 Feb 2021 16:27:05 +0000 (16:27 +0000)]
No need to check ifi->active for NULL when looking for duplicate/obsolete
leases. It can't be NULL, and is unconditionally dereferenced a few lines
later anyway.

3 years agoFix annoying typo in a comment.
krw [Wed, 24 Feb 2021 16:21:33 +0000 (16:21 +0000)]
Fix annoying typo in a comment.

3 years agoRemove incomplete/incorrect connection with autoconf, clearing ground
krw [Wed, 24 Feb 2021 16:18:59 +0000 (16:18 +0000)]
Remove incomplete/incorrect connection with autoconf, clearing ground
for future attempts at making it more IPv6-like.

ok florian@

3 years agoshow AF for DNS proposal messages; ok claudio bluhm
deraadt [Wed, 24 Feb 2021 16:12:42 +0000 (16:12 +0000)]
show AF for DNS proposal messages; ok claudio bluhm

3 years agokqueue: Revise filterops interface
visa [Wed, 24 Feb 2021 14:59:52 +0000 (14:59 +0000)]
kqueue: Revise filterops interface

Extend kqueue's filterops interface with new callbacks so that it
becomes easier to use with fine-grained locking. The new interface
delegates the serialization of kn_event access to event sources. Now
kqueue uses filterops callbacks to read or write kn_event. This hides
event sources' locking patterns from kqueue, and allows clean
implementation of atomic read-and-clear for EV_CLEAR, for instance.

There are so many existing filterops instances that converting all of
them in one go is tricky. This patch adds a wrapper mechanism that
kqueue uses when the new callbacks are missing.

The new filterops interface has been influenced by XNU's kqueue.

OK mpi@ semarie@

3 years agoVarious fixes from emails Joachim Nilsson sent to tech@ many moons
lum [Wed, 24 Feb 2021 14:17:18 +0000 (14:17 +0000)]
Various fixes from emails Joachim Nilsson sent to tech@ many moons
ago. Sorry for the delay.

- Make sure we don't deref NULL ptr in skipwhite()
- Only deref vendp if not NULL
- Strings must be at least 2 chars for terminating NUL character

3 years agosnprintf() does indeed return an int. From an email Joachim Nilsson
lum [Wed, 24 Feb 2021 13:58:46 +0000 (13:58 +0000)]
snprintf() does indeed return an int. From an email Joachim Nilsson
sent to tech@ many moons ago. Sorry for the delay.

3 years agospelling fix;
jmc [Wed, 24 Feb 2021 13:36:19 +0000 (13:36 +0000)]
spelling fix;

3 years agoIn sorflush() use m_purge() instead of handrolling it.
bluhm [Wed, 24 Feb 2021 13:19:48 +0000 (13:19 +0000)]
In sorflush() use m_purge() instead of handrolling it.
no objections mvs@

3 years agowhite space tweak, no functional change
dlg [Wed, 24 Feb 2021 12:33:50 +0000 (12:33 +0000)]
white space tweak, no functional change