jsing [Thu, 9 Dec 2021 16:30:05 +0000 (16:30 +0000)]
Add initial tests for coverage of ASN.1 basic/primitive types.
florian [Thu, 9 Dec 2021 16:20:12 +0000 (16:20 +0000)]
Rework in which state to add and not add the server-ip and
requested-ip option as well as setting ciaddr.
This started with joel@ pointing out that their CPE is ignoring
RENEWING and REBINDING requests when ciaddr was not set.
RFC 2131 4.3.6, Table 4 has a good overview, we got a bunch of it
wrong.
Previously the logic for this was all over the place which made it
difficult to reason about, it is now contained in the engine process
in request_dhcp_request() and request_dhcp_discover().
Problem pointed out by, lots of testing and review as well as OK joel@
Additional testing and 50% review benno@
schwarze [Thu, 9 Dec 2021 15:28:58 +0000 (15:28 +0000)]
Fix an issue that might possibly turn into a DOS depending on
how application software uses the API function BIO_indent(3):
If the caller asks for some output, but not more than some negative
number of bytes, give them zero bytes of output rather than drowning
them in nearly INT_MAX bytes.
OK tb@
schwarze [Thu, 9 Dec 2021 15:11:48 +0000 (15:11 +0000)]
Add a section "NAMING CONVENTIONS".
There is no need to explain well-known acronyms that are widely
used outside OpenSSL, too (like AES, ASN.1, CMS, ECDSA, PKCS...),
but OpenSSL uses plenty of idiosyncratic naming elements that
deserve to be explained (like d2i, ex, get0, ndef, sk, ...).
Requested by jsing@; feedback and OK tb@.
tobhe [Thu, 9 Dec 2021 13:49:45 +0000 (13:49 +0000)]
Properly enable NAT-T without udpencap if mobike was negotiated without NAT.
Fixes a bug where iked sent zero-prefixed NAT-T messages on port 500 causing
parsing errors.
ok markus@ patrick@
tobhe [Thu, 9 Dec 2021 13:36:59 +0000 (13:36 +0000)]
Move switch to NAT-T port and udpencap activation to ikev2_enable_natt().
ok patrick@
kettenis [Thu, 9 Dec 2021 11:44:31 +0000 (11:44 +0000)]
aplpmgr(4)
kettenis [Thu, 9 Dec 2021 11:38:26 +0000 (11:38 +0000)]
Add aplpmgr(4), a driver for the power management controller found on
various Apple SoCs.
ok patrick@
deraadt [Thu, 9 Dec 2021 04:06:58 +0000 (04:06 +0000)]
sync
guenther [Thu, 9 Dec 2021 00:26:10 +0000 (00:26 +0000)]
We only have one syscall table: inline sysent/SYS_MAXSYSCALL and
SYS_syscall as the nosys() function into the MD syscall entry
routines and the SYSCALL_DEBUG support. Adjust alpha's syscall
check to match the other archs. Also, make sysent const to get it
into .rodata.
With that, 'struct emul' is unused: delete it and all its references
ok millert@
cheloha [Wed, 8 Dec 2021 22:06:28 +0000 (22:06 +0000)]
lsearch(3): reimplement using lfind(3)
lsearch(3) is really just lfind(3) with an additional branch to append
the key if lfind(3) fails. If we get rid of the underlying
linear_base() function and move the search portion into lfind(3) and
the key-copying portion into lsearch(3) we get smaller and simpler
code.
Misc. notes:
- We do not need to keep the historical comment about errno. lsearch(3)
is pure computation and does not set errno. That's really all you
need to know. The specification reserves no errors, either.
- We are using lfind(3) internally now, so it switches from
PROTO_DEPRECATED to PROTO_NORMAL in hidden/search.h and needs
DEF_WEAK in stdlib/lsearch.c.
With advice from guenther@ on symbol housekeeping in libc.
Thread: https://marc.info/?l=openbsd-tech&m=
163885187632449&w=2
ok millert@
schwarze [Wed, 8 Dec 2021 21:52:29 +0000 (21:52 +0000)]
new manual page ASN1_bn_print(3)
martijn [Wed, 8 Dec 2021 20:18:43 +0000 (20:18 +0000)]
wtmp doesn't need to reload syslogd.
From Anton Kasimov <kasimov <dot> an <at> gmail <dot> com>
OK bluhm@
tb [Wed, 8 Dec 2021 19:25:04 +0000 (19:25 +0000)]
relayd/ssl.c: Remove a workaround that uses a copy of the old
certificate instead of using it directly because BIO_new_mem_buf()
used to take an non-const buffer. This was changed in 2018, so we
can now remove an XXX and simplify the code.
ok bluhm
tobhe [Wed, 8 Dec 2021 19:17:35 +0000 (19:17 +0000)]
The /etc/iked/certs/ directory is used for both local and peer
certificates. Check if we have a matching key before using a
certificate as local to prevent cryptic error messages later
when the signature is checked.
ok markus@ patrick@
schwarze [Wed, 8 Dec 2021 16:31:10 +0000 (16:31 +0000)]
document BIO_indent(3);
while here, improve some of the existing text in minor ways
bluhm [Wed, 8 Dec 2021 14:24:18 +0000 (14:24 +0000)]
Start documenting the locking strategy of struct tdb fields. Note
that gettdb_dir() is MP safe now. Add the tdb_sadb_mtx mutex in
udpencap_ctlinput() to protect the access to tdb_snext. Make the
braces consistently for all these TDB loops. Move NET_ASSERT_LOCKED()
into the functions where the read access happens.
OK mvs@
visa [Wed, 8 Dec 2021 13:22:53 +0000 (13:22 +0000)]
Remove unnecessary select(2) exceptfds kludges.
schwarze [Wed, 8 Dec 2021 13:21:04 +0000 (13:21 +0000)]
mark c2i_ASN1_OBJECT as intentionally undocumented;
discussed with jsing@
schwarze [Wed, 8 Dec 2021 13:13:21 +0000 (13:13 +0000)]
mark i2c_ASN1_BIT_STRING, c2i_ASN1_BIT_STRING, and c2i_ASN1_INTEGER
as intentionally undocumented; discussed with jsing@
visa [Wed, 8 Dec 2021 13:03:52 +0000 (13:03 +0000)]
Fix select(2) exceptfds handling of FIFOs and pipes
Prevent select(2) from indicating an exceptional condition when the
other end of a FIFO or pipe is closed.
Originally, select(2) returned an exceptfds event only with a pty or
socket that has out-of-band data pending. millert@ says that OpenBSD
diverged from this by accident when poll(2) and select(2) were changed
to use the same backend code in year 2003.
OK millert@
jsg [Wed, 8 Dec 2021 11:42:02 +0000 (11:42 +0000)]
drm/amd/display: Allow DSC on supported MST branch devices
From Nicholas Kazlauskas
775191dd4c1bcf546ab7ce87f3476537615437b7 in linux 5.10.y/5.10.84
94ebc035456a4ccacfbbef60c444079a256623ad in mainline linux
jsg [Wed, 8 Dec 2021 11:38:57 +0000 (11:38 +0000)]
drm/amd/amdgpu: fix potential memleak
From Bernard Zhao
c746945fb6bcbe3863c9ea6369c7ef376e38e5eb in linux 5.10.y/5.10.84
27dfaedc0d321b4ea4e10c53e4679d6911ab17aa in mainline linux
jsg [Wed, 8 Dec 2021 11:36:25 +0000 (11:36 +0000)]
drm/amd/amdkfd: Fix kernel panic when reset failed and been triggered again
From shaoyunl
74aafe99efb68f15e50be9f7032c2168512f98a8 in linux 5.10.y/5.10.84
2cf49e00d40d5132e3d067b5aa6d84791929ab15 in mainline linux
tb [Wed, 8 Dec 2021 03:40:44 +0000 (03:40 +0000)]
zap a stray space
guenther [Tue, 7 Dec 2021 22:17:02 +0000 (22:17 +0000)]
Delete the last emulation callbacks: we're Just ELF, so declare
exec_elf_fixup() and coredump_elf() in <sys/exec_elf.h> and call
them and the MD setregs() directly in kern_exec.c and kern_sig.c
Also delete e_name[] (only used by sysctl), e_errno (unused), and
e_syscallnames[] (only used by SYSCALL_DEBUG) and constipate
syscallnames to 'const char *const[]'
ok kettenis@
djm [Tue, 7 Dec 2021 22:06:45 +0000 (22:06 +0000)]
better error message for FIDO keys when we can't match them to a token
tb [Tue, 7 Dec 2021 20:13:15 +0000 (20:13 +0000)]
Simple conversion to opaque EVP_CIPHER.
stsp [Tue, 7 Dec 2021 20:06:38 +0000 (20:06 +0000)]
Teach the net80211 stack to remove corresponding frames from ic_pwrsaveq
when a power-saving client decides to leave our hostap interface.
Prevents a "key unset for sw crypto" panic as we try to send a frame
to a node which is in COLLECT state with its WPA keys already cleared.
We were already clearing the queue which buffers power-saved frames for
the client node. This queue is stored within the node structure itself.
However, the interface has another global queue for frames which need to
be transmitted by the driver to a set of nodes during the next DTIM.
We missed removing frames for a departing node from this global queue.
While here, add missing node refcount adjustments as frames get purged.
Problem reported by Mikolaj Kucharski, who tested this fix for more
than a week with athn(4), with no further panics observed.
deraadt [Tue, 7 Dec 2021 18:30:26 +0000 (18:30 +0000)]
uvm_map_inentry() is provided a format string that says "inside", but then
prints the end which is in the next page. Subtract 1 to avoid confusion.
deraadt [Tue, 7 Dec 2021 18:13:45 +0000 (18:13 +0000)]
The ypproto buffer (which supports + lines in passwd) was correct
length for maximum amount of strings, but forgot about the struct passwd
taken from the start, and it isn't clear if the missing non-string elements
cover for that shortage. It would require misconfiguration by root to
exceed the buffer. As well, the strings don't need to be aligned, and
thus sys/param.h isn't needed for ALIGN()
ok millert
kettenis [Tue, 7 Dec 2021 18:06:08 +0000 (18:06 +0000)]
Fix typo in Tiger Lake H configuration.
From James Hastings
guenther [Tue, 7 Dec 2021 17:51:04 +0000 (17:51 +0000)]
Continue to delete emulation support: we only have one sigcode and
sigobject. Just use the existing globals for the former and use a
global for the latter.
ok jsg@ kettenis@
guenther [Tue, 7 Dec 2021 17:50:44 +0000 (17:50 +0000)]
Delete an #if block that dates from rev 1.1 and hasn't been enabled
in those 20 years. We're unlikely to take the macppc pmap in the
direction where it would apply.
ok kettenis@
bluhm [Tue, 7 Dec 2021 17:28:46 +0000 (17:28 +0000)]
In ipo_tdb the flow contains a reference counted TDB cache. This
may prevent that tdb_free() is called. It is not a real leak as
ipsecctl -F or termination of iked flush this cache when they remove
the IPsec policy. Move the code from tdb_free() to tdb_delete(),
then the kernel does the cleanup itself.
OK mvs@ tobhe@
tobhe [Tue, 7 Dec 2021 17:26:14 +0000 (17:26 +0000)]
Add test case for authentication with locally stored peer certificates.
tobhe [Tue, 7 Dec 2021 17:03:01 +0000 (17:03 +0000)]
Fix locally stored peer certificates in /etc/iked/certs as documented in
iked(8). Local certificates are always trusted and preferred over certs
received over the wire.
ok patrick@ markus@
schwarze [Tue, 7 Dec 2021 17:01:08 +0000 (17:01 +0000)]
be more specific which NETSCAPE stuff to ignore, and why
schwarze [Tue, 7 Dec 2021 16:43:24 +0000 (16:43 +0000)]
Some improvements allowing to handle asn1.h and x509v3.h:
* handle multiple qualifiers on the function return type
* handle function pointer type declarations
* handle unions inside structs
* handle forward struct declarations
* handle "typedef const"
* handle ASN1_F_, ASN1_R_, and X509V3_R_ error constants
* handle "#if defined" in the same way as "#ifdef"
* skip whitespace between "#" and "define"
* skip whitespace before C comments
* ignore TYPEDEF_D2I2D_OF
deraadt [Tue, 7 Dec 2021 16:07:56 +0000 (16:07 +0000)]
print the failed method number
krw [Tue, 7 Dec 2021 14:58:32 +0000 (14:58 +0000)]
Don't truncate the default OpenBSD partition at the end of the
last full cylinder. Let it extend to the end of the disk.
visa [Tue, 7 Dec 2021 14:06:16 +0000 (14:06 +0000)]
Add EVFILT_EXCEPT filter for pipes
The kqueue-based select(2) needs the filter to replicate the old
exceptfds behaviour. The upcoming new poll(2) code will use the filter
for POLLHUP condition checking when the events bitmap is clear of
read/write events.
OK anton@
robert [Tue, 7 Dec 2021 14:00:33 +0000 (14:00 +0000)]
switch from tradcpp(1) to cpp(1); ok jsg@
schwarze [Tue, 7 Dec 2021 13:26:49 +0000 (13:26 +0000)]
Improve the COMMAND SECTION section in multiple respects regarding
correctness, clarity, readability, and markup conventions.
Triggered by Richard Ulmer <... rulmer at mailbox dot org> wondering
whether the list of actions is complete and pointing out that
the "shell" action no longer exists (it was removed quite some time
ago for security reasons).
OK jmc@
claudio [Tue, 7 Dec 2021 12:46:47 +0000 (12:46 +0000)]
Use one common function to build the base directory path for repositories.
OK benno@
kettenis [Tue, 7 Dec 2021 10:16:50 +0000 (10:16 +0000)]
Fix parsing of SR_IRQ resource descriptors here as well.
ok patrick@, anton@
kettenis [Tue, 7 Dec 2021 10:15:25 +0000 (10:15 +0000)]
Fix parsing of SR_IRQ resource descriptors.
ok patrick@, anton@
anton [Tue, 7 Dec 2021 07:58:56 +0000 (07:58 +0000)]
Add missing kernel unlock in error path.
ok dv@
Reported-by: syzbot+c773ba1ce9b2d259d27f@syzkaller.appspotmail.com
nicm [Tue, 7 Dec 2021 07:28:44 +0000 (07:28 +0000)]
Respond to OSC 4 query.
nicm [Tue, 7 Dec 2021 07:21:40 +0000 (07:21 +0000)]
Use four digits not two for RGB responses to match other terminals.
guenther [Tue, 7 Dec 2021 04:19:24 +0000 (04:19 +0000)]
Continue to delete emulation support: since we're Just ELF, the size
of the auxinfo is fixed: provide ELF_AUX_WORDS in <sys/exec_elf.h>
as a replacement for emul->e_arglen
ok millert@
deraadt [Tue, 7 Dec 2021 04:13:22 +0000 (04:13 +0000)]
Two of the umount -f are not neccessary, and only risk leaving
filesystems in bad shape. The other -f are special, and I haven't
though through them yet.
discussed with florian and tb a while back
cheloha [Tue, 7 Dec 2021 04:01:45 +0000 (04:01 +0000)]
lsearch(3): append key to array with memmove(3) instead of memcpy(3)
If the key overlaps the end of the array, memcpy(3) mutates the key
and copies a corrupted value into the end of the array.
If we use memmove(3) instead we at least end up with a clean copy of
the key at the end of the array. This is closer to the intended
behavior.
With input from millert@ and deraadt@.
Thread: https://marc.info/?l=openbsd-tech&m=
163880307403606&w=2
ok millert@
cheloha [Tue, 7 Dec 2021 03:16:08 +0000 (03:16 +0000)]
sleep.3: miscellanous cleanup, rewrites
Highlights:
- Tighten up the NAME.
- "process" -> "thread".
- Tidy up the DESCRIPTION. In particular, omit discussion of the
historial SIGALRM-based implementation.
- Simplify RETURN VALUES.
- Add an ERRORS section, note that sleep(3) can set EINTR.
- Update STANDARDS to POSIX.1-2008.
- Note that setting errno is an extension to the spec.
Discussed with and revised by jmc@, deraadt@, millert@, and schwarze@.
With a history lesson from jsg@.
Thread: https://marc.info/?l=openbsd-tech&m=
162718445809428&w=2
"the changes read fine to me" jmc@, ok millert@ schwarze@
cheloha [Tue, 7 Dec 2021 02:58:46 +0000 (02:58 +0000)]
uvn_reference(): correct printf(9) argument order
Thread: https://marc.info/?l=openbsd-tech&m=
163884527530326&w=2
ok deraadt@
mvs [Tue, 7 Dec 2021 01:19:47 +0000 (01:19 +0000)]
Make `unp_msgcount' and `unp_file' protection with `unp_gc_lock'
rwlock(9).
This save us from from races provided by unlocked access to the `f_count'
which cause false marking alive socket as dead. We always modify `f_count'
and `unp_msgcount' together so the `f_count' modification should also pass
the `unp_gc_rwlock' before `unp_msgcount' increment and after
`unp_msgcount' decrement. The locked `unp_file' assignment avoids us from
drain unp_gc() run.
This moves unp_gc() locking back when these wariables were protected with
the same lock which was taken for all garbage collector run but uses
another lock not `unp_lock'.
ok kettenis@ bluhm@
deraadt [Tue, 7 Dec 2021 00:40:03 +0000 (00:40 +0000)]
sys/signal.h (or some master include) must happen before sys/proc.h, which
is not standalone.
This problem is being hidden by a sys/param.h which cannot be deleted yet.
deraadt [Tue, 7 Dec 2021 00:38:42 +0000 (00:38 +0000)]
Use PATH_MAX (the standard name) rather than MAXPATHLEN (from BSD sys/param.h)
tobhe [Mon, 6 Dec 2021 21:47:27 +0000 (21:47 +0000)]
Logging received addresses and DNS configuration only makes sense for
the initiator.
ok patrick@
guenther [Mon, 6 Dec 2021 21:21:10 +0000 (21:21 +0000)]
Start to delete emulation support: since we're Just ELF, make
copyargs() return 0/1 and merge elf_copyargs() into it. Rename
ep_emul_arg and ep_emul_argp to have clearer meaning and type and
eliminate ep_emul_argsize as no longer necessary. Make sure
ep_auxinfo (nee ep_emul_argp) is initialized as powerpc64 always
uses it in setregs().
ok semarie@ deraadt@ kettenis@
kettenis [Mon, 6 Dec 2021 20:01:54 +0000 (20:01 +0000)]
Implement DMA address translation for "raw" loads as well.
ok patrick@
schwarze [Mon, 6 Dec 2021 19:45:27 +0000 (19:45 +0000)]
In the next major bump, some BN macros will become functions.
In order to not forget it, already remove the statements
that these APIs are currently implemented as macros:
Not saying that doesn't make the documentation wrong.
kettenis [Mon, 6 Dec 2021 19:38:39 +0000 (19:38 +0000)]
Implement DMA address translation for "raw" loads as well.
ok patrick@
kettenis [Mon, 6 Dec 2021 18:02:58 +0000 (18:02 +0000)]
Add missing short-circuit in bcmpcie_dmamap_load_raw().
ok patrick@
tb [Mon, 6 Dec 2021 11:06:58 +0000 (11:06 +0000)]
Clean up a bunch of dead code in s_server.c and s_socket.c
jsg's analysis tool flagged a potential double free in do_server().
While this looks like a false positive, we can clean this code up
a little: the host name passed to the callbacks isn't used by either
sv_body() and www_body(), so it can be made local to do_accept()
(an extra variable would not even be needed). Simplify the callbacks'
signatures accordingly. Remove some commented out linger code that
would never be used again anyway.
ok inoguchi jsg
nicm [Mon, 6 Dec 2021 10:10:52 +0000 (10:10 +0000)]
Fix g/G keys to be in line with copy mode.
nicm [Mon, 6 Dec 2021 10:08:42 +0000 (10:08 +0000)]
Do not dereference NULL window when resizing client, GitHub issue 2982.
jsg [Mon, 6 Dec 2021 09:49:46 +0000 (09:49 +0000)]
zero correct var in cpu_dump()
ok guenther@ deraadt@
sashan [Mon, 6 Dec 2021 07:41:33 +0000 (07:41 +0000)]
fix odd check in pfi_kif_free()
pointed out by jsg@
OK jsg@
visa [Mon, 6 Dec 2021 05:52:07 +0000 (05:52 +0000)]
Test poll/select with various I/O conditions; not hooked up yet.
cheloha [Mon, 6 Dec 2021 02:48:55 +0000 (02:48 +0000)]
gettimeofday.2: miscellaneous manpage cleanup
Highlights:
- Tweak the one-liner description.
- Better variable names.
- Reorder DESCRIPTION to reflect the importance of each interface.
- Advise against using gettimeofday(2) for measuring elapsed time.
- Isolate discussion of the historical timezone parameter to its
own paragraph at the end of the DESCRIPTION.
- Update ERRORS. Mention the securelevel(7) EPERM for settimeofday(2).
- Expand SEE ALSO.
- Note settimeofday(2) in STANDARDS. It is available on many systems.
Discussed with jmc@, millert@, and deraadt@. Possibly discussed with
schwarze@, though I can't find the email.
Thread: https://marc.info/?t=
162765632800002&r=1&w=2
"reads fine to me" jmc@, ok millert@
cheloha [Mon, 6 Dec 2021 00:15:01 +0000 (00:15 +0000)]
time.3: miscellaneous manpage cleanup
- Change "tloc" variable to "now" to reinforce meaning.
- Simplify DESCRIPTION.
- No point in describing how gettimeofday(2) can fail here.
- Add a STANDARDS section.
- Rework the HISTORY section.
With input from jmc@, millert@, and schwarze@.
Thread: https://marc.info/?l=openbsd-tech&m=
162766815024823&w=2
"reads fine" jmc@, ok schwarze@
deraadt [Sun, 5 Dec 2021 22:36:19 +0000 (22:36 +0000)]
sys/select.h is not needed, if howmany/NBBY are needed they will arrive
via netinet/in.h and sys/time.h, which I must say surprises me a bit
cheloha [Sun, 5 Dec 2021 22:00:42 +0000 (22:00 +0000)]
kbind(2): disable system call if not initialized before first __tfork(2)
To unlock kbind(2) we need to protect ps_kbind_addr and
ps_kbind_cookie.
The simplest way to do this is to disallow kbind(2) initialization
after the first __tfork(2) call. If the first thread does not
initialize the kbind(2) variables before __tfork(2) then we disable
kbind(2) during that first __tfork(2) call.
This is guenther@'s patch, I'm just committing it.
Discussed with guenther@, deraadt@, kettenis@, and mpi@.
ok kettenis@, positive response from mpi@, "I am busy" guenther@
tobhe [Sun, 5 Dec 2021 20:21:14 +0000 (20:21 +0000)]
Add test case for policy matching on responder with multiple policies that
only differ by srcid.
deraadt [Sun, 5 Dec 2021 16:40:24 +0000 (16:40 +0000)]
libpcap parser uses a memory tracker to only free all objects at the end.
this code was slicing up large mallocs with sys/param.h ALIGN(). such a
scheme loses the many overflow/damage checking benefits of malloc per object.
Change the code to track independent allocations, rather than slicing.
ok gnezdo claudio
jmc [Sun, 5 Dec 2021 16:07:01 +0000 (16:07 +0000)]
elf64_checkum->elf64_checksum; adapted from changes by saitoh masanobu
jmc [Sun, 5 Dec 2021 15:53:46 +0000 (15:53 +0000)]
sytle -> style; adapted from changes by saitoh masanobu
jsg [Sun, 5 Dec 2021 15:35:32 +0000 (15:35 +0000)]
add missing mtx_leave() calls in error paths
ok anton@
jsg [Sun, 5 Dec 2021 13:48:14 +0000 (13:48 +0000)]
fix use after free
ok tb@
tb [Sun, 5 Dec 2021 13:47:52 +0000 (13:47 +0000)]
Allow libradius tests to compile with opaque HMAC_CTX.
tb [Sun, 5 Dec 2021 13:45:26 +0000 (13:45 +0000)]
Simplify DH_check_params a bit.
It makes no sense to allocate an entire BN_CTX if we only use it to
get a single BIGNUM, from which we subtract 1 to compare it to g.
We can just use a plain BIGNUM and delete a bunch of lines.
ok inoguchi jsing
jsing [Sun, 5 Dec 2021 13:01:08 +0000 (13:01 +0000)]
Add initial regress for CT.
This provides test coverage for SCT encoding/decoding.
jsg [Sun, 5 Dec 2021 12:28:27 +0000 (12:28 +0000)]
fix unintended sizeof pointer in debug path
ok markus@
jsg [Sun, 5 Dec 2021 12:26:27 +0000 (12:26 +0000)]
fix unintended sizeof pointer
ok claudio@
stsp [Sun, 5 Dec 2021 11:33:45 +0000 (11:33 +0000)]
Defer rtm_80211info() call from ieee80211_set_link_state() to a task context.
Sending routing messages requires a socket lock which may sleep.
ieee80211_set_link_state() is called from interrupts and timeouts where
sleeping is not allowed. mvs@ pointed out that if_link_state_change()
is already using a task for this reason.
Should fix a witness-related panic reported by cheloha@
ok mvs@ tobhe@ florian@
tb [Sun, 5 Dec 2021 09:37:46 +0000 (09:37 +0000)]
Add RCS markers
dv [Sat, 4 Dec 2021 18:51:36 +0000 (18:51 +0000)]
vmm(4): reload vmcs after possible sleep points
Guests running on Intel hosts that sleep on a lock might have their
process moved to another cpu core by the scheduler. If this happens,
the VMCS needs to be remotely cleared and locally loaded otherwise
vmx instructions will fail. vmd(8) will receive a failure code and
abort the guest.
This change stores the current (last) cpu the process was on before
attempting a function call that may sleep (e.g. uvm_fault(9)). Upon
function return, perform the VMCS dance if needed.
Tested with help from Mischa Pieters.
OK mlarkin@
tb [Sat, 4 Dec 2021 17:03:43 +0000 (17:03 +0000)]
gross trailing whitespace
tb [Sat, 4 Dec 2021 16:29:25 +0000 (16:29 +0000)]
List subdirectories as a simple list. Avoids a source of many merge
conflicts in my work on making much of libcrypto opaque.
discussed with jsing
tb [Sat, 4 Dec 2021 16:11:10 +0000 (16:11 +0000)]
Annotate the structs to be moved to bn_lcl.h in the next bump
ok inoguchi jsing
tb [Sat, 4 Dec 2021 16:09:59 +0000 (16:09 +0000)]
Use BN_is_negative(p) instead of p->neg in one place.
tb [Sat, 4 Dec 2021 16:08:32 +0000 (16:08 +0000)]
Add #include "bn_lcl.h" to the files that will soon need it.
ok inoguchi jsing
kettenis [Sat, 4 Dec 2021 16:08:02 +0000 (16:08 +0000)]
Previous diff was incomplete, we also need to do DMA translation for
bus_dmamap_load_raw(9). This fixes xhci(4) on the rpi4 with the
U-Boot from ports that is installed on the arm64 installation media.
ok mglocker@, patrick@
tb [Sat, 4 Dec 2021 16:05:46 +0000 (16:05 +0000)]
Implement the BN_to_montgomery() macro as a function
ok inoguchi jsing
tb [Sat, 4 Dec 2021 16:02:44 +0000 (16:02 +0000)]
Implement the BN_is_negative macro as a function
ok inoguchi jsing
tb [Sat, 4 Dec 2021 15:59:52 +0000 (15:59 +0000)]
Provide function implementations for various BN_* macros
BN_abs_is_word, BN_is_{zero,one,word,odd}, BN_one, BN_zero_ex are
now implemented as functions for internal use. They will be exposed
publicly to replace the macros reaching into BIGNUM in the next bump.
ok inoguchi jsing
tb [Sat, 4 Dec 2021 15:53:01 +0000 (15:53 +0000)]
Provide replacement functions for the BN_{get,set,with}_flags() macros.
ok inoguchi jsing
tb [Sat, 4 Dec 2021 15:48:23 +0000 (15:48 +0000)]
Provide replacement functions for the BN_GENCB_set{,_old}() macros
The function implementations are necessary to make BIGNUM opaque.
They will be used in libcrypto internally until they will replace
the macro implementations with the next bump.
ok inoguchi jsing
jsing [Sat, 4 Dec 2021 15:38:10 +0000 (15:38 +0000)]
Consolidate {d2i,i2d}_{pr,pu}.c
Currently there are two files for private key ASN.1 (d2i_pr.c, i2d_pr.c)
and two files for public key ASN.1 (d2i_pu.c, i2d_pu.c). All of the other
ASN.1 code has d2i and i2d in the same per-object file.
Consolidate d2i_pr.c/i2d_pr.c into a_pkey.c and consolidate
d2i_pu.c/i2d_pu.c into a_pubkey.c before making any further changes to
this code.
ok tb@