visa [Mon, 31 Oct 2022 13:59:10 +0000 (13:59 +0000)]
mips64: Raise SPL for hardclock()
This lets the MI clock interrupt code see the correct SPL.
The full splx() is skipped because the updating of the hardware interrupt
masks should not be needed here.
Prompted by and OK cheloha@
mpi [Mon, 31 Oct 2022 10:46:24 +0000 (10:46 +0000)]
Fix VMMAP_DEBUG code to compile with not-so-recent changes.
If enabled the debug code currently panic the kernel. To investigate.
guenther [Mon, 31 Oct 2022 03:20:41 +0000 (03:20 +0000)]
style: 'The function type should be on a line by itself preceding the function.'
dtucker [Sun, 30 Oct 2022 18:42:07 +0000 (18:42 +0000)]
Use variable for diff options instead of unconditionally specifying "-rN".
This will make life easier in -portable where not all diff's understand -N.
guenther [Sun, 30 Oct 2022 17:43:39 +0000 (17:43 +0000)]
Simplfity setregs() by passing it the ps_strings and switching
sys_execve() to return EJUSTRETURN.
setregs() is the MD routine used by sys_execve() to set up the
thread's trapframe and PCB such that, on 'return' to userspace, it
has the register values defined by the ABI and otherwise zero. It
had to set the syscall retval[] values previously because the normal
syscall return path overwrites a couple registers with the retval[]
values. By instead returning EJUSTRETURN that and some complexity
with program-counter handling on m88k and sparc64 goes away.
Also, give setregs() add a 'struct ps_strings *arginfo' argument
so powerpc, powerpc64, and sh can directly get argc/argv/envp
values for registers instead of copyin()ing the one in userspace.
Improvements from miod@ and millert@
Testing assistance miod@, kettenis@, and aoyama@
ok miod@ kettenis@
patrick [Sun, 30 Oct 2022 15:34:54 +0000 (15:34 +0000)]
On the Lenovo X13s attaching to the multiport USB controller leads to hard
resets. Previously this was only seen with smmu(4) enabled, probably as
there is no IORT reference to that controller and hence no IOMMU mapping
established. Since recent BIOS updates, this now also happens without
smmu(4) enabled. Let's skip this node for now to keep machines running.
Prompted by deraadt@
ok phessler@
kn [Sun, 30 Oct 2022 13:27:15 +0000 (13:27 +0000)]
The previous commit message out to say this:
---
Fix sparc64 build
cc1: warnings being treated as errors
.../constraints.c: In function 'test_constraints1':
.../constraints.c:451: warning: ISO C90 forbids mixed declarations and code
Fix RCS ID while here.
kn [Sun, 30 Oct 2022 13:23:49 +0000 (13:23 +0000)]
/* $OpenBSD: $ */
/*
* Copyright (c) 2020 Bob Beck <beck@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <err.h>
#include <string.h>
#include <openssl/safestack.h>
#include <openssl/x509.h>
#include <openssl/x509v3.h>
#include "x509_internal.h"
#define FAIL(msg, ...) \
do { \
fprintf(stderr, "[%s:%d] FAIL: ", __FILE__, __LINE__); \
fprintf(stderr, msg, ##__VA_ARGS__); \
} while(0)
unsigned char *valid_hostnames[] = {
"openbsd.org",
"op3nbsd.org",
"org",
"3openbsd.com",
"3-0penb-d.c-m",
"a",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"open_bsd.org", /* because this is liberal */
NULL,
};
unsigned char *valid_sandns_names[] = {
"*.ca",
"*.op3nbsd.org",
"c*.openbsd.org",
"foo.*.d*.c*.openbsd.org",
NULL,
};
unsigned char *valid_domain_constraints[] = {
"",
".ca",
".op3nbsd.org",
".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"www.openbsd.org",
NULL,
};
unsigned char *valid_mbox_names[] = {
"\"!#$%&\\\"*+-/=?\002^_`{|}~.\"@openbsd.org",
"beck@openbsd.org",
"beck@openbsd.org",
"beck@op3nbsd.org",
"beck@org",
"beck@3openbsd.com",
"beck@3-0penb-d.c-m",
"bec@a",
"beck@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com",
"beck@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"beck@open_bsd.org", /* because this is liberal */
NULL,
};
unsigned char *invalid_hostnames[] = {
"openbsd.org.",
"openbsd..org",
"openbsd.org-",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.a",
"-p3nbsd.org",
"openbs-.org",
"openbsd\n.org",
"open\178bsd.org",
"open\255bsd.org",
"*.openbsd.org",
NULL,
};
unsigned char *invalid_sandns_names[] = {
"",
".",
"*.a",
"*.",
"*.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com",
".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.a",
"*.-p3nbsd.org",
"*.*..openbsd.org",
"*..openbsd.org",
".openbsd.org",
"c*c.openbsd.org",
NULL,
};
unsigned char *invalid_mbox_names[] = {
"beck@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com",
"beck@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.a",
"beck@.-openbsd.org",
"beck@.openbsd.org.",
"beck@.a",
"beck@.",
"beck@",
"beck@.ca",
"@openbsd.org",
NULL,
};
unsigned char *invalid_domain_constraints[] = {
".",
".a",
"..",
".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com",
".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.a",
".-p3nbsd.org",
"..openbsd.org",
NULL,
};
unsigned char *invaliduri[] = {
"https://-www.openbsd.org",
"https://.www.openbsd.org/",
"https://www.ope|nbsd.org%",
"https://www.openbsd.org.#",
"///",
"//",
"/",
"",
NULL,
};
static int
test_valid_hostnames(void)
{
int i, failure = 0;
for (i = 0; valid_hostnames[i] != NULL; i++) {
if (!x509_constraints_valid_host(valid_hostnames[i],
strlen(valid_hostnames[i]))) {
FAIL("Valid hostname '%s' rejected\n",
valid_hostnames[i]);
failure = 1;
goto done;
}
if (!x509_constraints_valid_sandns(valid_hostnames[i],
strlen(valid_hostnames[i]))) {
FAIL("Valid sandns '%s' rejected\n",
valid_hostnames[i]);
failure = 1;
goto done;
}
}
done:
return failure;
}
static int
test_valid_sandns_names(void)
{
int i, failure = 0;
for (i = 0; valid_sandns_names[i] != NULL; i++) {
if (!x509_constraints_valid_sandns(valid_sandns_names[i],
strlen(valid_sandns_names[i]))) {
FAIL("Valid dnsname '%s' rejected\n",
valid_sandns_names[i]);
failure = 1;
goto done;
}
}
done:
return failure;
}
static int
test_valid_domain_constraints(void)
{
int i, failure = 0;
for (i = 0; valid_domain_constraints[i] != NULL; i++) {
if (!x509_constraints_valid_domain_constraint(valid_domain_constraints[i],
strlen(valid_domain_constraints[i]))) {
FAIL("Valid dnsname '%s' rejected\n",
valid_domain_constraints[i]);
failure = 1;
goto done;
}
}
done:
return failure;
}
static int
test_valid_mbox_names(void)
{
struct x509_constraints_name name = {0};
int i, failure = 0;
for (i = 0; valid_mbox_names[i] != NULL; i++) {
if (!x509_constraints_parse_mailbox(valid_mbox_names[i],
strlen(valid_mbox_names[i]), &name)) {
FAIL("Valid mailbox name '%s' rejected\n",
valid_mbox_names[i]);
failure = 1;
goto done;
}
free(name.name);
name.name = NULL;
free(name.local);
name.local = NULL;
}
done:
return failure;
}
static int
test_invalid_hostnames(void)
{
int i, failure = 0;
char *nulhost = "www.openbsd.org\0";
for (i = 0; invalid_hostnames[i] != NULL; i++) {
if (x509_constraints_valid_host(invalid_hostnames[i],
strlen(invalid_hostnames[i]))) {
FAIL("Invalid hostname '%s' accepted\n",
invalid_hostnames[i]);
failure = 1;
goto done;
}
}
if (x509_constraints_valid_host(nulhost,
strlen(nulhost) + 1)) {
FAIL("hostname with NUL byte accepted\n");
failure = 1;
goto done;
}
if (x509_constraints_valid_sandns(nulhost,
strlen(nulhost) + 1)) {
FAIL("sandns with NUL byte accepted\n");
failure = 1;
goto done;
}
done:
return failure;
}
static int
test_invalid_sandns_names(void)
{
int i, failure = 0;
for (i = 0; invalid_sandns_names[i] != NULL; i++) {
if (x509_constraints_valid_sandns(invalid_sandns_names[i],
strlen(invalid_sandns_names[i]))) {
FAIL("Valid dnsname '%s' rejected\n",
invalid_sandns_names[i]);
failure = 1;
goto done;
}
}
done:
return failure;
}
static int
test_invalid_mbox_names(void)
{
int i, failure = 0;
struct x509_constraints_name name = {0};
for (i = 0; invalid_mbox_names[i] != NULL; i++) {
if (x509_constraints_parse_mailbox(invalid_mbox_names[i],
strlen(invalid_mbox_names[i]), &name)) {
FAIL("invalid mailbox name '%s' accepted\n",
invalid_mbox_names[i]);
failure = 1;
goto done;
}
free(name.name);
name.name = NULL;
free(name.local);
name.local = NULL;
}
done:
return failure;
}
static int
test_invalid_domain_constraints(void)
{
int i, failure = 0;
for (i = 0; invalid_domain_constraints[i] != NULL; i++) {
if (x509_constraints_valid_domain_constraint(invalid_domain_constraints[i],
strlen(invalid_domain_constraints[i]))) {
FAIL("invalid dnsname '%s' accepted\n",
invalid_domain_constraints[i]);
failure = 1;
goto done;
}
}
done:
return failure;
}
static int
test_invalid_uri(void)
{
int j, failure=0;
char *hostpart = NULL;
for (j = 0; invaliduri[j] != NULL; j++) {
if (x509_constraints_uri_host(invaliduri[j],
strlen(invaliduri[j]), &hostpart) != 0) {
FAIL("invalid URI '%s' accepted\n",
invaliduri[j]);
failure = 1;
goto done;
}
free(hostpart);
hostpart = NULL;
}
done:
return failure;
}
static int
test_constraints1(void)
{
char *c; size_t cl;
char *d; size_t dl;
int failure = 0;
int error = 0;
int i, j;
unsigned char *constraints[] = {
".org",
".openbsd.org",
"www.openbsd.org",
NULL,
};
unsigned char *failing[] = {
".ca",
"openbsd.ca",
"org",
NULL,
};
unsigned char *matching[] = {
"www.openbsd.org",
NULL,
};
unsigned char *matchinguri[] = {
"https://www.openbsd.org",
"https://www.openbsd.org/",
"https://www.openbsd.org?",
"https://www.openbsd.org#",
"herp://beck@www.openbsd.org:",
"spiffe://beck@www.openbsd.org/this/is/so/spiffe/",
NULL,
};
unsigned char *failinguri[] = {
"https://www.openbsd.ca",
"https://www.freebsd.com/",
"https://www.openbsd.net?",
"https://org#",
"herp://beck@org:",
"///",
"//",
"/",
"",
NULL,
};
unsigned char *noauthority[] = {
"urn:open62541.server.application",
NULL,
};
for (i = 0; constraints[i] != NULL; i++) {
char *constraint = constraints[i];
size_t clen = strlen(constraints[i]);
for (j = 0; matching[j] != NULL; j++) {
if (!x509_constraints_domain(matching[j],
strlen(matching[j]), constraint, clen)) {
FAIL("constraint '%s' should have matched"
" '%s'\n",
constraint, matching[j]);
failure = 1;
goto done;
}
}
for (j = 0; matchinguri[j] != NULL; j++) {
error = 0;
if (!x509_constraints_uri(matchinguri[j],
strlen(matchinguri[j]), constraint, clen, &error)) {
FAIL("constraint '%s' should have matched URI"
" '%s' (error %d)\n",
constraint, matchinguri[j], error);
failure = 1;
goto done;
}
}
for (j = 0; failing[j] != NULL; j++) {
if (x509_constraints_domain(failing[j],
strlen(failing[j]), constraint, clen)) {
FAIL("constraint '%s' should not have matched"
" '%s'\n",
constraint, failing[j]);
failure = 1;
goto done;
}
}
for (j = 0; failinguri[j] != NULL; j++) {
error = 0;
if (x509_constraints_uri(failinguri[j],
strlen(failinguri[j]), constraint, clen, &error)) {
FAIL("constraint '%s' should not have matched URI"
" '%s' (error %d)\n",
constraint, failinguri[j], error);
failure = 1;
goto done;
}
}
for (j = 0; noauthority[j] != NULL; j++) {
char *hostpart = NULL;
error = 0;
if (!x509_constraints_uri_host(noauthority[j],
strlen(noauthority[j]), &hostpart)) {
FAIL("name '%s' should parse as a URI",
noauthority[j]);
failure = 1;
free(hostpart);
goto done;
}
free(hostpart);
if (x509_constraints_uri(noauthority[j],
strlen(noauthority[j]), constraint, clen, &error)) {
FAIL("constraint '%s' should not have matched URI"
" '%s' (error %d)\n",
constraint, failinguri[j], error);
failure = 1;
goto done;
}
}
}
c = ".openbsd.org";
cl = strlen(".openbsd.org");
d = "*.openbsd.org";
dl = strlen("*.openbsd.org");
if (!x509_constraints_domain(d, dl, c, cl)) {
FAIL("constraint '%s' should have matched '%s'\n",
c, d);
failure = 1;
goto done;
}
c = "www.openbsd.org";
cl = strlen("www.openbsd.org");
if (x509_constraints_domain(d, dl, c, cl)) {
FAIL("constraint '%s' should not have matched '%s'\n",
c, d);
failure = 1;
goto done;
}
c = "";
cl = 0;
if (!x509_constraints_domain(d, dl, c, cl)) {
FAIL("constraint '%s' should have matched '%s'\n",
c, d);
failure = 1;
goto done;
}
done:
return failure;
}
int
main(int argc, char **argv)
{
int failed = 0;
failed |= test_valid_hostnames();
failed |= test_invalid_hostnames();
failed |= test_valid_sandns_names();
failed |= test_invalid_sandns_names();
failed |= test_valid_mbox_names();
failed |= test_invalid_mbox_names();
failed |= test_valid_domain_constraints();
failed |= test_invalid_domain_constraints();
failed |= test_invalid_uri();
failed |= test_constraints1();
return (failed);
}
kn [Sun, 30 Oct 2022 10:55:52 +0000 (10:55 +0000)]
Move duplex check from sbdsp_midi_open() to sbdsp_open() where it belongs
sbdsp.c r1.42 "Replace audio(9) get_props() with duplex check in open()
in partial duplex drivers" added it to the wrong function.
kettenis [Sat, 29 Oct 2022 20:35:50 +0000 (20:35 +0000)]
The x13s only defines the (legacy) 32-bit SMBIOS entry point. Add code to
handle that such that we can see the firmware version in dmesg.
ok deraadt@, phessler@
miod [Fri, 28 Oct 2022 16:06:54 +0000 (16:06 +0000)]
Fix indent botch; noticed by kettenis@
miod [Fri, 28 Oct 2022 15:50:55 +0000 (15:50 +0000)]
Remove antique^Wolder-than-binutils-2.17 c++filt(1).
miod [Fri, 28 Oct 2022 15:49:52 +0000 (15:49 +0000)]
Build and install binutils-2.17's version of c++filt(1), since we already
install its manual page.
Reported by vol at ljabl dot com
kettenis [Fri, 28 Oct 2022 15:26:46 +0000 (15:26 +0000)]
Decode DT_MIPS_RLD_MAP_REL.
ok deraadt@
kn [Fri, 28 Oct 2022 15:13:59 +0000 (15:13 +0000)]
Remove unused audio(9) get_props()/AUDIO_PROP_FULLDUPLEX
All audio drivers have been cleaned up and, if needed, now check for duplex
mode in their open() handler.
OK ratchov miod
kn [Fri, 28 Oct 2022 15:09:45 +0000 (15:09 +0000)]
Replace audio(9) get_props() with duplex check in open() in non-duplex drivers
Make drivers which do *not* adverise AUDIO_PROP_FULLDPLEX return ENXIO
in their open() if full-duplex mode was requested.
This way, sys/dev/audio.c:audio_open() will fail immediately rather than
later through the to-be-removed get_props() check.
These are all drivers which simply don't support full-duplex mode.
In device-tree based drivers like simpleaudio(4)/rkiis(4) and newer Apple
ones like aplaudio(4)/aplmca(4), this adds a new open() stub to the
low-level drivers which merely does the duplex check.
My Pinebook Pro keeps playing audio and recording silence with this diff
just like before (rkiis(4) is currently play-only):
simpleaudio0 at mainbus0
simpleaudio1 at mainbus0
audio0 at simpleaudio1
$ aucat -i song69.wav -o rec.wav
OK ratchov miod
kettenis [Fri, 28 Oct 2022 15:09:39 +0000 (15:09 +0000)]
Add DT_MIPS_RLD_MAP_REL support to the in-tree GDB.
ok deraadt@
kettenis [Fri, 28 Oct 2022 15:08:59 +0000 (15:08 +0000)]
Implement DT_MIPS_RLD_MAP_REL support and add such an entry to PIE
executables.
ok deraadt@
kettenis [Fri, 28 Oct 2022 15:07:25 +0000 (15:07 +0000)]
Implement support for DT_MIPS_RLD_MAP_REL.
ok deraadt@
kn [Fri, 28 Oct 2022 15:02:20 +0000 (15:02 +0000)]
Remove audio(9) get_props() from record-only drivers
utvfu(4) seems to be the only driver that currently supports recording but
not playing and its open() already returns ENXIO when playing is requested,
so no need to add another duplex check after get_props() is gone.
OK ratchov miod
kn [Fri, 28 Oct 2022 14:55:46 +0000 (14:55 +0000)]
Replace audio(9) get_props() with duplex check in open() in partial duplex drivers
Make drivers which do *not* adverise AUDIO_PROP_FULLDPLEX return ENXIO
in their open() if full-duplex mode was requested.
This way, sys/dev/audio.c:audio_open() will fail immediately rather than
later through the to-be-removed get_props() check.
This is the first round for drivers with logic in their get_props(), i.e.
those that only support full-duplex mode for specific hardware:
ess(4), gus(4), pas(4) and sb(4)
All of these are i386/GENERIC only and share code through
sys/dev/isa/{ad1848,sbdsp}{.c,var.h} which are not used by any other kernel.
i386/GENERIC.MP builds and boots with this diff.
OK ratchov miod
nicm [Fri, 28 Oct 2022 13:00:02 +0000 (13:00 +0000)]
Add paste-buffer-deleted notification and fix name of paste-buffer-changed.
nicm [Fri, 28 Oct 2022 12:20:28 +0000 (12:20 +0000)]
Do not send focus sequences when reporting is enabled, matches other
terminals behaviour.
dlg [Fri, 28 Oct 2022 11:24:49 +0000 (11:24 +0000)]
getopt optstring doesn't need '?'.
found while hacking up a comp3301 prac/assignment
ok millert@ deraadt@
djm [Fri, 28 Oct 2022 02:47:04 +0000 (02:47 +0000)]
put sshkey_check_rsa_length() back in sshkey.c to unbreak
OPENSSL=no builds
djm [Fri, 28 Oct 2022 02:29:34 +0000 (02:29 +0000)]
allow ssh-keyscan(1) to accept CIDR address ranges, e.g.
ssh-keyscan 192.168.0.0/24
If a CIDR range is passed, then it will be expanded to all possible
addresses in the range including the all-0s and all-1s addresses.
bz#976 feedback/ok markus@
djm [Fri, 28 Oct 2022 00:44:44 +0000 (00:44 +0000)]
refactor sshkey_private_deserialize
feedback/ok markus@
djm [Fri, 28 Oct 2022 00:44:17 +0000 (00:44 +0000)]
refactor sshkey_private_serialize_opt()
feedback/ok markus@
djm [Fri, 28 Oct 2022 00:43:30 +0000 (00:43 +0000)]
refactor certify
feedback/ok markus@
djm [Fri, 28 Oct 2022 00:43:08 +0000 (00:43 +0000)]
refactor sshkey_sign() and sshkey_verify()
feedback/ok markus@
djm [Fri, 28 Oct 2022 00:41:52 +0000 (00:41 +0000)]
refactor sshkey_from_blob_internal()
feedback/ok markus@
djm [Fri, 28 Oct 2022 00:41:17 +0000 (00:41 +0000)]
refactor sshkey_from_private()
feedback/ok markus@
djm [Fri, 28 Oct 2022 00:39:29 +0000 (00:39 +0000)]
factor out key generation
feedback/ok markus@
djm [Fri, 28 Oct 2022 00:38:58 +0000 (00:38 +0000)]
refactor and simplify sshkey_read()
feedback/ok markus@
djm [Fri, 28 Oct 2022 00:37:24 +0000 (00:37 +0000)]
factor out public key serialization
feedback/ok markus@
djm [Fri, 28 Oct 2022 00:36:31 +0000 (00:36 +0000)]
factor out sshkey_equal_public()
feedback/ok markus@
djm [Fri, 28 Oct 2022 00:35:40 +0000 (00:35 +0000)]
begin big refactor of sshkey
Move keytype data and some of the type-specific code (allocation,
cleanup, etc) out into each key type's implementation. Subsequent
commits will move more, with the goal of having each key-*.c file
owning as much of its keytype's implementation as possible.
lots of feedback + ok markus@
deraadt [Thu, 27 Oct 2022 23:17:18 +0000 (23:17 +0000)]
In dynamic binaries, AUX_base is the ld.so address. In static PIE binaries,
it is the base of the binary itself. Repair of this comment does not undo
the hair pulling that happened today.
ok guenther
deraadt [Thu, 27 Oct 2022 22:48:17 +0000 (22:48 +0000)]
Unfortunately there are still ugly text-relocation binaries in the wild.
Libraries are less of a concern, because ld.so can fix them in the right
order. So we must scan DYNAMIC for the TEXTREL marker, and not make
X LOADs immutable. ld.so will apply changes to the text segment. In
upcoming diff, crt0 and ld.so will then apply immutability.
ok kettenis
deraadt [Thu, 27 Oct 2022 19:40:21 +0000 (19:40 +0000)]
hppa and mips64 have private copies of RCRT0_RELRO(), which should
also perform mimmutable()
ok guenther
deraadt [Thu, 27 Oct 2022 16:01:18 +0000 (16:01 +0000)]
VMCMD_SYSCALL cannot be incorporated into flags variable, because flags
is inspected narrowly for base address later.
ok kettenis
claudio [Thu, 27 Oct 2022 13:24:22 +0000 (13:24 +0000)]
Print the pid in some additional debug messages to be able to match them
with the fork messages.
OK tb@
patrick [Thu, 27 Oct 2022 13:21:14 +0000 (13:21 +0000)]
Match ure(4) on Windows Dev Kit 2023
ok jsg@
patrick [Thu, 27 Oct 2022 13:20:16 +0000 (13:20 +0000)]
regen
patrick [Thu, 27 Oct 2022 13:19:42 +0000 (13:19 +0000)]
Add USB device id for integrated ure(4) on Windows Dev Kit 2023
ok jsg@
bluhm [Thu, 27 Oct 2022 12:58:37 +0000 (12:58 +0000)]
Update libexpat to 2.5.0. This fixes CVE-2022-43680. Relevant for
OpenBSD are security fixes #616 #649 #650 and bug fixes #612 #645
#613 #654 #616 #652 #653. No library bump necessary.
OK tb@
deraadt [Thu, 27 Oct 2022 04:12:09 +0000 (04:12 +0000)]
sync
kettenis [Wed, 26 Oct 2022 23:18:01 +0000 (23:18 +0000)]
Enable waitid(2) regress tests and a new test derived from NetBSD's
wait6(2) tests.
ok millert@, deraadt@
kettenis [Wed, 26 Oct 2022 23:16:24 +0000 (23:16 +0000)]
Add waitid(2) syscall stub.
Minor bump to both libc and libpthread: make sure you install a new kernel!
ok millert@, deraadt@
tb [Wed, 26 Oct 2022 20:31:38 +0000 (20:31 +0000)]
dtlstest: Ensure the timeouts are at least 10 ms. This makes these tests
a bit less flaky if the machine is otherwise under load.
from jsing
kn [Wed, 26 Oct 2022 20:19:06 +0000 (20:19 +0000)]
Make audio(9) get_props() optional, remove it from duplex drivers
The property bits of audio(9) are obsolete and ought to be removed
completely.
sys/dev/audio.c:audio_open() currently uses get_props() to bail out if
read *and* write was requested on a non-duplex driver.
Drivers that currently support playing but not recording need adjustment
before the API can be cleaned up.
Drivers that advertise themselves as full duplex, i.e. those that always
return AUDIO_PROP_FULLDUPLEX unconditionally in their get_props() currently
always succeed this check.
As this is the only property, losen audio_open()'s DIAGNOSTIC check and only
do the duplex check if the driver provides get_props().
This allows for simple removal of get_props() from full-duplex drivers
without adding any other code or without changing functionality.
This includes all audio drivers under sys/dev/pci/ (maestro(4) being the
only unfinished exception here).
Other drivers as well as the API change can then follow in smaller diffs.
This builds on amd64, arm64, i386, macppc and sparc64.
amd64 with azalia(4) still plays, records as well as plays and records
at the same time on my X230 as tested with
$ aucat -i play.wav [-o rec.wav]
alpha and hppa tests by miod
OK ratchov miod
kn [Wed, 26 Oct 2022 17:06:31 +0000 (17:06 +0000)]
Limit wireguard peers listing to -A or wg-interface
ifconfig(8) output can get too long when always printing `wgpeers' for all
wg(4) interfaces, so omit it output is requested and/or output is limited
to the interface group "wg" or a specific interface "wgX".
No install media size change as wireguard code is under #ifndef SMALL.
Diff from Mikolaj Kucharski <mikolaj AT kucharski DOT name>
makes Hrvoje Popovski happy
manual bits from jmc
OK sthen
kn [Wed, 26 Oct 2022 16:07:28 +0000 (16:07 +0000)]
Constify device table
OK jcs
kn [Wed, 26 Oct 2022 16:06:42 +0000 (16:06 +0000)]
Constify battery check table
OK jcs
kettenis [Wed, 26 Oct 2022 13:31:06 +0000 (13:31 +0000)]
Fix handling of PGIDs in wait4(2) that I broke with the previous commit.
ok anton@, millert@
millert [Wed, 26 Oct 2022 00:40:40 +0000 (00:40 +0000)]
compress: fix minor TOCTOU when checking for existing file
Use open(2) + fstat(2) instead of stat(2) + open(2). The file open
code has been moved into its own functions so it can be shared
between docompress() and dodecompress().
miod [Tue, 25 Oct 2022 19:55:31 +0000 (19:55 +0000)]
Make the floating-point computations a sligthly teeny bit more complex (but
real), to prevent llvm panzers from optimizing too aggressively and generating
code which does not touch the slightest floating point register on some
platforms.
ok otto@
mglocker [Tue, 25 Oct 2022 19:32:18 +0000 (19:32 +0000)]
Calculate approx. battery re-charge time.
miod [Tue, 25 Oct 2022 18:44:36 +0000 (18:44 +0000)]
Store mod/ref flags using md pg_flags values rather than a specific field in
vm_page_md, which allows this struct to shrink a bit.
nicm [Tue, 25 Oct 2022 17:53:31 +0000 (17:53 +0000)]
Initialize context before testing it.
kn [Tue, 25 Oct 2022 17:10:13 +0000 (17:10 +0000)]
trim DESCRIPTION
- just call it (a sh(1)) script, in line with MAKEDEV(8) and rc.d(8)
- use only .Nm thereafter instead of .Nm/the .Nm script/...
- zap the additional rc.conf(8) bits for they can be found in this manual
- zap unhelpful "(or can be)"
Feedback OK jmc
millert [Tue, 25 Oct 2022 16:30:30 +0000 (16:30 +0000)]
Move CLOCKS_PER_SEC to sys/_time.h so the kernel has access to it.
This will be used in waitid(2) to set si_utime and si_stime.
The definition of struct timespec also moves from time.h to sys/_time.h
for struct itimerspec. OK kettenis@
kettenis [Tue, 25 Oct 2022 16:11:29 +0000 (16:11 +0000)]
regen
kettenis [Tue, 25 Oct 2022 16:10:31 +0000 (16:10 +0000)]
mplement waitid(2) which is now part of POSIX and used by mozilla.
This includes a change of siginfo_r which is technically an ABI break but
this should have no real-world impact since the members involved are
never touched by the kernel.
ok millert@, deraadt@
kettenis [Tue, 25 Oct 2022 16:08:26 +0000 (16:08 +0000)]
Implement waitid(2) which is now part of POSIX and used by mozilla.
This includes a change of siginfo_r which is technically an ABI break but
this should have no real-world impact since the members involved are
never touched by the kernel.
ok millert@, deraadt@
guenther [Tue, 25 Oct 2022 15:15:38 +0000 (15:15 +0000)]
Consistently use 'proc_trampoline' as the name of the trampoline
used by cpu_fork()
ok miod@ kettenis@ mpi@ deraadt@
aoyama [Tue, 25 Oct 2022 11:39:33 +0000 (11:39 +0000)]
Add more chance to process IPI in the interrupt service routine.
This prevents "luna88k_ext_int: cpu0 level 1 interrupt" message on
heavy load.
"This makes sense" miod@, tested by me.
martijn [Tue, 25 Oct 2022 10:46:59 +0000 (10:46 +0000)]
Fix LDADD and DPADD.
DPADD bit pointed out by deraadt@
"No kidding" deraadt@
martijn [Tue, 25 Oct 2022 09:54:24 +0000 (09:54 +0000)]
Fix several "bytes" in DESCRIPTION to their clearly intended "packets".
Found by Alec olp_76 <at> yahoo <dot> ca
OK sthen@, denis@
nicm [Tue, 25 Oct 2022 09:12:05 +0000 (09:12 +0000)]
Fix a memory leak, from Japin Li in GitHub issue 3358.
nicm [Tue, 25 Oct 2022 09:04:49 +0000 (09:04 +0000)]
Do not fire redraw callback if NULL.
kn [Tue, 25 Oct 2022 08:40:25 +0000 (08:40 +0000)]
Improve DESCRIPTION
- use plural to clarify how more than interface may be passed
- drop the distinction between interface and bridge
- drop useless example: netstart is as trivial as echo(1)
- mention options the usual way, this also adds tags which makes ":tn" work
as expected in the pager to jump to `-n's definition
OK jmc
guenther [Tue, 25 Oct 2022 06:05:57 +0000 (06:05 +0000)]
STACK_OFFSET was to support it varying when compiling some code for
either 32bit or 64bit. With the elimination of 32bit sparc bits
it was just a superfluous indirection of BIAS. Also, CCFSZ is gone.
ok miod@
guenther [Tue, 25 Oct 2022 06:00:34 +0000 (06:00 +0000)]
rwindow32 is gone and won't be coming back. ok miod@
jmc [Tue, 25 Oct 2022 05:49:40 +0000 (05:49 +0000)]
tweak DESCRIPTION; ok mglocker
djm [Mon, 24 Oct 2022 22:43:36 +0000 (22:43 +0000)]
Be more paranoid with host/domain names coming from the resolver:
don't follow CNAMEs with invalid characters when canonicalising
and never write a name with bad characters to a known_hosts file.
reported by David Leadbeater, ok deraadt@
djm [Mon, 24 Oct 2022 21:52:50 +0000 (21:52 +0000)]
regress test for unmatched glob characters; fails before previous
commit but passes now. bz3488; prodded by dtucker@
djm [Mon, 24 Oct 2022 21:51:55 +0000 (21:51 +0000)]
when scp(1) is using the SFTP protocol for transport (the default),
better match scp/rcp's handling of globs that don't match the globbed
characters but do match literally (e.g. trying to transfer "foo.[1]").
Previously scp(1) in SFTP mode would not match these pathnames but
legacy scp/rcp mode would.
Reported by Michael Yagliyan in bz3488; ok dtucker@
kn [Mon, 24 Oct 2022 20:51:07 +0000 (20:51 +0000)]
do not wait for autoconf in dry-run
If there is no default route but some interface has AUTOCONF, printing
what would be done still waits for... nothing to happen.
OK tb
jmc [Mon, 24 Oct 2022 20:43:23 +0000 (20:43 +0000)]
update the maxrtc entry;
while here, knock out the Tn macros and patch up AUTHORS;
mglocker [Mon, 24 Oct 2022 18:34:29 +0000 (18:34 +0000)]
We recently added support for the DS1339.
kn [Mon, 24 Oct 2022 17:58:43 +0000 (17:58 +0000)]
Add required sh(1) to synopsis
Contrary to other scripts in base like rc.d(8) or MAKEDEV(8), netstart(8)
itself is not executable and must be passed as file to sh(1):
$ man -h netstart
/etc/netstart [-n] [interface ...]
$ /etc/netstart
ksh: /etc/netstart: cannot execute - Permission denied
Fix usage and synopsis to provide required usage:
$ man -h netsart
sh /etc/netstart [-n] [interface ...]
OK jmc
tobhe [Mon, 24 Oct 2022 15:52:39 +0000 (15:52 +0000)]
Fix DH group lookup when checking if PFS is required. Compare ID
directly instead of calling group_get() and leaking the result.
ok markus@
deraadt [Mon, 24 Oct 2022 15:11:56 +0000 (15:11 +0000)]
uvm_unmap_remove() traverses the entries in the start,end range scanning
for IMMUTABLE, before traversing for unmap. I didn't copy enough traversal
code for the scan, and thus MAP_FIXED was subtly broken.
test help from tb, ok kettenis miod
jmc [Mon, 24 Oct 2022 15:02:01 +0000 (15:02 +0000)]
remove unused references to httpd.sock; found by dante catalfamo
ok florian
tb [Mon, 24 Oct 2022 10:26:59 +0000 (10:26 +0000)]
Make x509_init_oid() table based
Reduces the amount of copy-paste and makes things easier on the eye.
ok claudio job
jsg [Mon, 24 Oct 2022 09:23:27 +0000 (09:23 +0000)]
improve grammar
with and ok jmc@ ok mglocker@
jsg [Mon, 24 Oct 2022 09:12:59 +0000 (09:12 +0000)]
regen
jsg [Mon, 24 Oct 2022 09:12:09 +0000 (09:12 +0000)]
add AMD Mendocino/Radeon 610M graphics id
family 17h model A0h, Ryzen and Athlon 7020 Series:
Ryzen 5 7520U
Ryzen 3 7320U
Athlon Gold 7220U
Athlon Silver 7120U
gfx1037/GC 10.3.7/DCN 3.1.6 ?
jsg [Mon, 24 Oct 2022 06:11:00 +0000 (06:11 +0000)]
regen
jsg [Mon, 24 Oct 2022 06:10:25 +0000 (06:10 +0000)]
include "600 Series" in 600 Series strings
missed in rev 1.1980
jsg [Mon, 24 Oct 2022 05:59:17 +0000 (05:59 +0000)]
enable snooping on Intel 700 Series
jsg [Mon, 24 Oct 2022 05:57:58 +0000 (05:57 +0000)]
match on Intel 700 Series
jsg [Mon, 24 Oct 2022 05:55:32 +0000 (05:55 +0000)]
regen
jsg [Mon, 24 Oct 2022 05:54:55 +0000 (05:54 +0000)]
add Intel 700 Series PCH ids
from: Intel 700 Series Chipset Family Platform Controller Hub
Datasheet, Volume 1 of 2. Doc. No.: 743835
jsg [Mon, 24 Oct 2022 04:57:29 +0000 (04:57 +0000)]
match AMD family 17h model 90h CCP
tested by and ok bentley@
jsg [Mon, 24 Oct 2022 04:55:20 +0000 (04:55 +0000)]
regen
jsg [Mon, 24 Oct 2022 04:54:47 +0000 (04:54 +0000)]
add AMD family 17h model 90h (Van Gogh) ids
based on bentley's Steam Deck dmesg; can't find any documentation
ok bentley@
mglocker [Mon, 24 Oct 2022 04:28:01 +0000 (04:28 +0000)]
Fix comment; sconds -> seconds
jsg [Mon, 24 Oct 2022 03:50:17 +0000 (03:50 +0000)]
order Xr by section