openbsd
4 months agoret-clean is compatible with unhibernate again, due to a fix in
deraadt [Fri, 7 Jun 2024 05:17:34 +0000 (05:17 +0000)]
ret-clean is compatible with unhibernate again, due to a fix in
LLVM X86RetClean.cpp
issue observed by mglocker, diagnosed by mlarkin, kettenis, guenther.

4 months agoInside LLVM, Functions become marked with exposesReturnsTwice() if they
deraadt [Fri, 7 Jun 2024 05:16:32 +0000 (05:16 +0000)]
Inside LLVM, Functions become marked with exposesReturnsTwice() if they
call a setjmp-type function (protyped with __attribute__((returns_twice)).

LLVM anticipates the longjmp type function will perform a direct branch
back (rather of a push;ret combo, almost certainly due to CET
shadow-stack coherency difficulties).  Since we have CET/IBT enforced,
LLVM makes that direct branch legal by placing an endbr64 immediately
after the callq.  Where I was placing the ret-clean sequence... this blows
up badly, in unhibernate / resume situations.

In the Functions marked exposesReturnsTwice(), skip doing ret-clean.
(placing the ret-clear after that endbr64 is much more difficult)
observed by mglocker, diagnosed by mlarkin, kettenis, guenther.

4 months agoescape the final dot at eol in "e.g." to avoid double spacing;
jmc [Thu, 6 Jun 2024 21:14:49 +0000 (21:14 +0000)]
escape the final dot at eol in "e.g." to avoid double spacing;

4 months agoenable PerSourcePenalties by default.
djm [Thu, 6 Jun 2024 20:25:48 +0000 (20:25 +0000)]
enable PerSourcePenalties by default.

ok markus

NB. if you run a sshd that accepts connections from behind large NAT
blocks, proxies or anything else that aggregates many possible users
behind few IP addresses, then this change may cause legitimate traffic
to be denied.

Please read the PerSourcePenalties, PerSourcePenaltyExemptList and
PerSourceNetBlockSize options in sshd_config(5) for how to tune your
sshd(8) for your specific circumstances.

4 months agomention that PerSourcePenalties don't affect concurrent in-progress
djm [Thu, 6 Jun 2024 20:20:42 +0000 (20:20 +0000)]
mention that PerSourcePenalties don't affect concurrent in-progress
connections.

4 months agodisable stderr redirection before closing fds
djm [Thu, 6 Jun 2024 19:50:01 +0000 (19:50 +0000)]
disable stderr redirection before closing fds

4 months agoregress test for PerSourcePenalties
djm [Thu, 6 Jun 2024 19:49:25 +0000 (19:49 +0000)]
regress test for PerSourcePenalties

4 months agomake sure logs are saved from sshd run via start_sshd
djm [Thu, 6 Jun 2024 19:48:40 +0000 (19:48 +0000)]
make sure logs are saved from sshd run via start_sshd

4 months agosimplify
djm [Thu, 6 Jun 2024 19:47:48 +0000 (19:47 +0000)]
simplify

4 months agoprepare for PerSourcePenalties being enabled by default in future
djm [Thu, 6 Jun 2024 18:48:13 +0000 (18:48 +0000)]
prepare for PerSourcePenalties being enabled by default in future

4 months agoAdd a facility to sshd(8) to penalise particular problematic client
djm [Thu, 6 Jun 2024 17:15:25 +0000 (17:15 +0000)]
Add a facility to sshd(8) to penalise particular problematic client
behaviours, controlled by two new sshd_config(5) options:
PerSourcePenalties and PerSourcePenaltyExemptList.

When PerSourcePenalties are enabled, sshd(8) will monitor the exit
status of its child pre-auth session processes. Through the exit
status, it can observe situations where the session did not
authenticate as expected. These conditions include when the client
repeatedly attempted authentication unsucessfully (possibly indicating
an attack against one or more accounts, e.g. password guessing), or
when client behaviour caused sshd to crash (possibly indicating
attempts to exploit sshd).

When such a condition is observed, sshd will record a penalty of some
duration (e.g. 30 seconds) against the client's address. If this time
is above a minimum threshold specified by the PerSourcePenalties, then
connections from the client address will be refused (along with any
others in the same PerSourceNetBlockSize CIDR range).

Repeated offenses by the same client address will accrue greater
penalties, up to a configurable maximum. A PerSourcePenaltyExemptList
option allows certain address ranges to be exempt from all penalties.

We hope these options will make it significantly more difficult for
attackers to find accounts with weak/guessable passwords or exploit
bugs in sshd(8) itself.

PerSourcePenalties is off by default, but we expect to enable it
automatically in the near future.

much feedback markus@ and others, ok markus@

4 months agossl_tlsext: fix uninitialized variable warning with gcc
tb [Thu, 6 Jun 2024 16:13:12 +0000 (16:13 +0000)]
ssl_tlsext: fix uninitialized variable warning with gcc

This is a false positive but as is well-known, gcc is terrible at
understanding conditionally initialized variables and it is tedious
to explain this to downstream maintainers who look at warnings.

ok miod

4 months agosync
florian [Thu, 6 Jun 2024 15:24:46 +0000 (15:24 +0000)]
sync

4 months agohook dhcp6leasectl to the built
florian [Thu, 6 Jun 2024 15:21:01 +0000 (15:21 +0000)]
hook dhcp6leasectl to the built

4 months agodhcp6leasectl
florian [Thu, 6 Jun 2024 15:16:57 +0000 (15:16 +0000)]
dhcp6leasectl

4 months agohand PD_IAs to dhcp6leasectl
florian [Thu, 6 Jun 2024 15:15:44 +0000 (15:15 +0000)]
hand PD_IAs to dhcp6leasectl

4 months agoCorrect plural form usage.
florian [Thu, 6 Jun 2024 15:07:46 +0000 (15:07 +0000)]
Correct plural form usage.

4 months agoTell my future self why I don't want to change this check
tb [Thu, 6 Jun 2024 12:38:02 +0000 (12:38 +0000)]
Tell my future self why I don't want to change this check

4 months agoFix call instruction disassembler in ddb.
bluhm [Thu, 6 Jun 2024 12:36:41 +0000 (12:36 +0000)]
Fix call instruction disassembler in ddb.

Disassembling the amd64 call instruction in ddb produced wrong
output.  The operand of e8 is only 4 bytes long, not 8.  The shown
address was off by 4 bytes.  Following instructions were interpreted
incorrectly.

OK guenther@

4 months agoCheck that TA certs are correctly signed
tb [Thu, 6 Jun 2024 11:53:09 +0000 (11:53 +0000)]
Check that TA certs are correctly signed

We know the pubkey from the TAL, so check that the signature is right
as required by RFC 6487, section 7, additional condition 1, applied to
self-issued certs. Make the error check weird since OpenSSL 3 broke yet
another API (thanks claudio for making me go look).

ok claudio job

4 months agorpki-client: fix RFC section references in ta_parse()
tb [Thu, 6 Jun 2024 07:20:15 +0000 (07:20 +0000)]
rpki-client: fix RFC section references in ta_parse()

ok claudio

4 months agorpki-client: fix a crash in filemode
tb [Thu, 6 Jun 2024 07:19:10 +0000 (07:19 +0000)]
rpki-client: fix a crash in filemode

For an expired TA, cert is freed and zeroed in file mode and cert_print()
crashes. For such TAs (and otherwise invalid ones) expired and notafter
become dangling pointers. Invalidate them and set them only for valid TA
certs.

with/ok claudio

4 months agoAccept more compact forms of prefix delegation requests.
florian [Thu, 6 Jun 2024 06:26:14 +0000 (06:26 +0000)]
Accept more compact forms of prefix delegation requests.

For example, these are now valid, too:

request prefix delegation on vio1 for vether4/64
request prefix delegation on vio1 for { vether5 vether6/64 }

Reminded by Tim Kuijsten

4 months agoip_resources_print(): zap extra blank line
tb [Thu, 6 Jun 2024 05:57:36 +0000 (05:57 +0000)]
ip_resources_print(): zap extra blank line

4 months agorpki-client: simplify ta_parse()
tb [Thu, 6 Jun 2024 03:29:52 +0000 (03:29 +0000)]
rpki-client: simplify ta_parse()

Since this is always called after cert_parse_pre(), notBefore and notAfter
are available in struct cert, so we can use time_t comparison.

ok claudio

5 months agoClear DF flag after kcopy faulted.
bluhm [Thu, 6 Jun 2024 00:36:46 +0000 (00:36 +0000)]
Clear DF flag after kcopy faulted.

A memory corruption in the kernel happend that was caused by memset
in the wrong direction.  After that DF bit was set in ddb rflags.

Only kcopy and memmove use std to set DF bit.  kcopy has the special
property that it can fault.  In this case DF is set in the trap
frame.  kpageflttrap() changes the return address to copy_fault via
pcb_onfault.  When alltraps_kern returns, it restores the rflags
with DF set and jumps into copy_fault.  From there a function return
goes back into regular kernel execution.  Now DF is set, but kernel
memset and memcpy expect that it is cleared.

After copy fault, also reset the DF bit with cld in copy_fault.
The crash happend on OpenBSD 7.4 amd64.  As i386 code looks similar,
also insert cld there.

OK guenther@ miod@

5 months agodisable -fret-clean in the kernel until the returns_twice situation is handled
deraadt [Wed, 5 Jun 2024 20:19:26 +0000 (20:19 +0000)]
disable -fret-clean in the kernel until the returns_twice situation is handled

5 months agoRevert __bounded__ hack in chacha-merged.c
tb [Wed, 5 Jun 2024 19:43:06 +0000 (19:43 +0000)]
Revert __bounded__ hack in chacha-merged.c

Thanks to Viktor Szakats for figuring out that stdint.h was missing
in the portable tarballs.

5 months agoPass cpu_fork() function to the new process through caller-saved registers
miod [Wed, 5 Jun 2024 19:22:04 +0000 (19:22 +0000)]
Pass cpu_fork() function to the new process through caller-saved registers
in the pcb rather than on the stack. This makes the code simpler and faster
and gets rid of one short timeframe where the stack pointer is only aligned
to an 8 byte boundary instead of a 16 byte boundary.

5 months agoImplement lease files.
florian [Wed, 5 Jun 2024 16:15:47 +0000 (16:15 +0000)]
Implement lease files.

5 months agoUse a loop to add request options.
florian [Wed, 5 Jun 2024 16:14:12 +0000 (16:14 +0000)]
Use a loop to add request options.

This makes it easier to extend in the future.

5 months agounused function
florian [Wed, 5 Jun 2024 16:12:09 +0000 (16:12 +0000)]
unused function

5 months agoimplement removing of addresses from interfaces
florian [Wed, 5 Jun 2024 16:11:26 +0000 (16:11 +0000)]
implement removing of addresses from interfaces

5 months agoOnly complain about empty list of revoked certs if verbosity > 1
tb [Wed, 5 Jun 2024 13:36:28 +0000 (13:36 +0000)]
Only complain about empty list of revoked certs if verbosity > 1

Given that 15% of CRLs is affected, this is a noisy warning. Krill is
dormant and it will take forever until a fixed version iss deployed.
Until then I'd like to avoid being annoyed wiht this stupid noise.

ok claudio

5 months agoNo need to call d_open/d_close for every hibernate resume i/o.
krw [Wed, 5 Jun 2024 11:04:17 +0000 (11:04 +0000)]
No need to call d_open/d_close for every hibernate resume i/o.

Speeds up resuming from hibernate.

Testing florian@ stsp@

ok mlarkin@ stsp@

5 months agoDo not try to configure an interface with prefix length 0.
florian [Wed, 5 Jun 2024 10:48:56 +0000 (10:48 +0000)]
Do not try to configure an interface with prefix length 0.

5 months agoDo not request a prefix with length zero.
florian [Wed, 5 Jun 2024 10:25:07 +0000 (10:25 +0000)]
Do not request a prefix with length zero.

If we got a prefix delegation for some IA but not others use the
prefix lenght from the configuration for the ones we did not get a
prefix delegation.

5 months agoadd support for VLAN tag offloading to dwqe(4)
stsp [Wed, 5 Jun 2024 10:19:55 +0000 (10:19 +0000)]
add support for VLAN tag offloading to dwqe(4)

Tested:
RK3568: kettenis@, jmatthew@; RK3568 can do Rx VLAN tag stripping only
Intel Elkhart Lake: stsp@; EHL additionally supports VLAN tagging on Tx

tweaks + ok jmatthew@

5 months agoNow that our hibernation sub-system supports 4096 byte sectors, add
mglocker [Wed, 5 Jun 2024 04:58:05 +0000 (04:58 +0000)]
Now that our hibernation sub-system supports 4096 byte sectors, add
hibernation support for ufshci(4).

Input from kettenis@, krw@, deraadt@, mlarkin@.

ok mlarkin@, deraadt@

5 months agomake test struct const
tb [Wed, 5 Jun 2024 04:50:36 +0000 (04:50 +0000)]
make test struct const

5 months agoBump versions of boot media now capable of un-hibernating from non-DEV_BSIZE
krw [Tue, 4 Jun 2024 21:48:20 +0000 (21:48 +0000)]
Bump versions of boot media now capable of un-hibernating from non-DEV_BSIZE
sectored media.

Bump to common version (3.67) to indicate new MI capability.

Reminded by deraadt@

5 months agoEnable hibernate/resume to nvme(4) disks with 4096 byte sectors.
krw [Tue, 4 Jun 2024 20:31:35 +0000 (20:31 +0000)]
Enable hibernate/resume to nvme(4) disks with 4096 byte sectors.

testing by florian@ mglocker@ mlarkin@

ok deraadt@ mglocker@ mlarkin@

5 months agoservices: add matrix-fed tcp port 8448
landry [Tue, 4 Jun 2024 18:13:23 +0000 (18:13 +0000)]
services: add matrix-fed tcp port 8448

registered at IANA since last august for Matrix Federation Protocol
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=8448

ok djm@ solene@

5 months agoAllow sbld allocation to fail when PMAP_CANFAIL.
gkoehler [Tue, 4 Jun 2024 17:31:59 +0000 (17:31 +0000)]
Allow sbld allocation to fail when PMAP_CANFAIL.

pool_get in powerpc64's pmap might fail when uvm_km_pages.free == 0.
This might cause KASSERT(slbd) to panic 'kernel diagnostic assertion
"sbld" failed'.  Remove this KASSERT and add a check for PMAP_CANFAIL.
pmap_enter calls without PMAP_CANFAIL might still panic.

ok mpi@ jca@

5 months agoIAIDs can start at 0.
florian [Tue, 4 Jun 2024 15:48:47 +0000 (15:48 +0000)]
IAIDs can start at 0.

I was under the impression that an IAID of 0 is special, but that's
not true. Letting IAID start at zero makes array indexing easier and
avoids an out of bounds access pointed out by dhill.

While here, do not trust IAID received via imsg but do our own
accounting.

5 months agoenable -fret-clean on amd64, for libc libcrypto ld.so kernel, and all the
deraadt [Tue, 4 Jun 2024 15:14:44 +0000 (15:14 +0000)]
enable -fret-clean on amd64, for libc libcrypto ld.so kernel, and all the
ssh tools.  The dynamic objects are entirely ret-clean, static binaries
will contain a blend of cleaning and non-cleaning callers.

5 months agoAvoid unnecessary string traversals in u8_isutf() and substr().
millert [Tue, 4 Jun 2024 14:40:46 +0000 (14:40 +0000)]
Avoid unnecessary string traversals in u8_isutf() and substr().

For u8_isutf() the conditionals already ensure that a NUL byte won't
match.  For substr() we can use the byte offset of 'm' to avoid
re-scanning the initial part of the string.  From Jonas Bechtel.

5 months agorpki-client: rework AIA, SIA, and CRL handling
tb [Tue, 4 Jun 2024 14:17:24 +0000 (14:17 +0000)]
rpki-client: rework AIA, SIA, and CRL handling

Assert that the out parameter is NULL rather than blindly NULL-ing it,
and follow the approach in sbgp_sia() more closely: use a local variable
and warn on any ignored accessMethod/distributionPoint in verbose mode.
AIA is slightly different because there's only a single accessMethod.

Drop the now useless (and previously wrong) warning on *out != NULL in
x509_location(). Instead, assert that the out parameter is NULL. This
way things are a bit less clever, but more explicit, more correct, more
robust, and the code grew only very slightly.

ok claudio

5 months agorpki-client: reject certs with unexpected SIA accessMethods
tb [Tue, 4 Jun 2024 14:10:53 +0000 (14:10 +0000)]
rpki-client: reject certs with unexpected SIA accessMethods

RFC 6487, section 4.8.8.1 only lists caRepository and rpkiManifest, and
RFC 8182 added rpkiNotify for RRDP. All other access methods (which would
be children of id-ad), are not allowed and do not really make sense here.

ok claudio

5 months agorpki-client: only allow a single rpkiNotify SIA accessMethod
tb [Tue, 4 Jun 2024 14:07:10 +0000 (14:07 +0000)]
rpki-client: only allow a single rpkiNotify SIA accessMethod

RFC 8182, section 3.2 is not super explicit about it, but there should
only be one rpkiNotify accessMethod, and it should contain a location
with a URI of type https. Check this and reject certs that contain more
than one.

ok claudio

5 months agovio(4): remove useless casts and fix spacing
jan [Tue, 4 Jun 2024 09:51:52 +0000 (09:51 +0000)]
vio(4): remove useless casts and fix spacing

ok sf@

5 months agoIn dequeue_randomness() use an atomic instruction to increase the
claudio [Tue, 4 Jun 2024 08:26:11 +0000 (08:26 +0000)]
In dequeue_randomness() use an atomic instruction to increase the
rnd_event_cons. This way even concurrent calls to dequeue_randomness()
will use some different events.
OK deraadt@ djm@

5 months agonow that we have dired-up-directory, use it in dired-jump too
op [Tue, 4 Jun 2024 06:51:15 +0000 (06:51 +0000)]
now that we have dired-up-directory, use it in dired-jump too

it's handy to be able to do C-x C-j (dired-jump) repeatedly to
navigate upwards starting from a buffer, and follows GNU Emacs
behaviour too.

5 months agoadd dired-up-directory bound to ^ to go up on directory in dired buffers
op [Tue, 4 Jun 2024 06:48:34 +0000 (06:48 +0000)]
add dired-up-directory bound to ^ to go up on directory in dired buffers

diff from Dante Catalfamo (date [at] lambda [dot] cx) with some minor
style nits and the manpage bits from me.

ok florian@

5 months agorpki-client: remove proto argument from x509_location()
tb [Tue, 4 Jun 2024 04:17:18 +0000 (04:17 +0000)]
rpki-client: remove proto argument from x509_location()

After recent changes, the rpkiNotify access description became the last
user of it, so this is now a pointless complication.

ok claudio

5 months agoLock and unlock EPT pmaps before page table entry modification.
dv [Mon, 3 Jun 2024 20:53:00 +0000 (20:53 +0000)]
Lock and unlock EPT pmaps before page table entry modification.

ok mlarkin@

5 months agoadd .mjs -> text/javascript. ok florian@
matthieu [Mon, 3 Jun 2024 20:08:12 +0000 (20:08 +0000)]
add .mjs -> text/javascript. ok florian@

5 months agogc v4 struct
florian [Mon, 3 Jun 2024 18:10:04 +0000 (18:10 +0000)]
gc v4 struct

5 months agomore sleepy florian knf issues
deraadt [Mon, 3 Jun 2024 17:58:33 +0000 (17:58 +0000)]
more sleepy florian knf issues

5 months agoOpenBSD intentionally does not print a flavor for -r.
florian [Mon, 3 Jun 2024 15:55:52 +0000 (15:55 +0000)]
OpenBSD intentionally does not print a flavor for -r.

confirmed by & OK deraadt

5 months agomore whitespace and knf
deraadt [Mon, 3 Jun 2024 15:53:26 +0000 (15:53 +0000)]
more whitespace and knf

5 months agoknf; pointed out by deraadt
florian [Mon, 3 Jun 2024 15:52:17 +0000 (15:52 +0000)]
knf; pointed out by deraadt

5 months agocorrecly -> correctly
jsg [Mon, 3 Jun 2024 14:59:22 +0000 (14:59 +0000)]
correcly -> correctly

5 months agohttpd: render "emojis" as text in directory listing
op [Mon, 3 Jun 2024 14:46:03 +0000 (14:46 +0000)]
httpd: render "emojis" as text in directory listing

The "up and down" character used in the directory listing is
technically an emoji and can, depending on the browser configuration,
be rendered in colors and whatnot.  set `font-variant-emoji' to ask
the browser to render it as text.  This property, as of now, needs
to be enabled manually in some browsers, but since it's part of the
"CSS Fonts Module Level 4" spec, support for it is expected to be
implemented and turned on "soon" in major browsers.

While here, remove the italic for directories.

Diff from Paul W. Rankin (hello (at) paulwrankin dot com)
ok claudio@

5 months agoRemove lock_class_sched_lock from lock_classes since the corresponding
claudio [Mon, 3 Jun 2024 14:34:19 +0000 (14:34 +0000)]
Remove lock_class_sched_lock from lock_classes since the corresponding
entry in enum lock_class_index was removed in sys/_lock.h
You get fireworks if the lock_classes array and enum lock_class_index
get out of sync.

5 months agosort
deraadt [Mon, 3 Jun 2024 14:11:31 +0000 (14:11 +0000)]
sort

5 months agoRework SIA handling to be less incorrect
tb [Mon, 3 Jun 2024 12:58:39 +0000 (12:58 +0000)]
Rework SIA handling to be less incorrect

Currently we would only accept rsync URIs in caRepository and rpkiManifest.
This is wrong. The specification requires at least one rsync URI to be
resent, but allows for other URI types, ordered by descending CA preference.
With this diff we will still only respect the first rsync address, but we
will no longer reject certificates listing other URIs. Make the warning
conditional on verbose mode.

Also make it clearer that sbgp_sia() (which is poorly named) is for CA
certs while x509_get_sia() is for EE certs.

input/ok claudio

5 months agoRemove the now unsued s argument to SCHED_LOCK and SCHED_UNLOCK.
claudio [Mon, 3 Jun 2024 12:48:25 +0000 (12:48 +0000)]
Remove the now unsued s argument to SCHED_LOCK and SCHED_UNLOCK.

The SPL level is not tacked by the mutex and we no longer need to track
this in the callers.
OK miod@ mlarkin@ tb@ jca@

5 months agoThere is no more LO_CLASS_SCHED_LOCK lock class.
claudio [Mon, 3 Jun 2024 12:46:59 +0000 (12:46 +0000)]
There is no more LO_CLASS_SCHED_LOCK lock class.
OK miod@ mlarkin@ tb@ jca@

5 months agoRemove superfluous pmap_extract() call in the hibernation path.
mglocker [Mon, 3 Jun 2024 12:01:57 +0000 (12:01 +0000)]
Remove superfluous pmap_extract() call in the hibernation path.

ok jsg@

5 months agoimplement rapid commit
florian [Mon, 3 Jun 2024 11:08:31 +0000 (11:08 +0000)]
implement rapid commit

5 months agosync
florian [Mon, 3 Jun 2024 10:08:05 +0000 (10:08 +0000)]
sync

5 months agoTrack changes to dhcp6leased.conf
florian [Mon, 3 Jun 2024 10:07:27 +0000 (10:07 +0000)]
Track changes to dhcp6leased.conf

looks correct to deraadt

5 months agoetc bits for dhcp6leased
florian [Mon, 3 Jun 2024 10:06:35 +0000 (10:06 +0000)]
etc bits for dhcp6leased

looks correct to deraadt

5 months agohook dhcp6leased to the build
florian [Mon, 3 Jun 2024 10:05:18 +0000 (10:05 +0000)]
hook dhcp6leased to the build
OK deraadt

5 months agoFix input handling wrt redrawing. The new version of curses does
otto [Mon, 3 Jun 2024 09:43:10 +0000 (09:43 +0000)]
Fix input handling wrt redrawing. The new version of curses does
not like shortcutting switching windows, especially if you're also
using libc for i/o. Reported by Don Wilburn; ok jsg@

5 months agoPledge violation messages are no longer accessible through dmesg since
anton [Mon, 3 Jun 2024 08:02:22 +0000 (08:02 +0000)]
Pledge violation messages are no longer accessible through dmesg since
the switch to uprintf. Attach a pseudo terminal in pledge regress in order to
observe the syscall number that caused the pledge violation, shrug.

5 months agoPassing a NULL digest to SHA routines from libcrypto is no longer
anton [Mon, 3 Jun 2024 06:14:32 +0000 (06:14 +0000)]
Passing a NULL digest to SHA routines from libcrypto is no longer
supported.

ok tb@

5 months agoavoid shadowing a local variable in a lower scope
deraadt [Mon, 3 Jun 2024 03:41:47 +0000 (03:41 +0000)]
avoid shadowing a local variable in a lower scope

5 months agoSpelling fixes and removal of unneeded prototypes and extern.
millert [Mon, 3 Jun 2024 00:58:04 +0000 (00:58 +0000)]
Spelling fixes and removal of unneeded prototypes and extern.
From jsg@ via upstream.

5 months agoBuild with WARNINGS=Yes and fix resulting warnings.
millert [Mon, 3 Jun 2024 00:55:05 +0000 (00:55 +0000)]
Build with WARNINGS=Yes and fix resulting warnings.

5 months agoremove prototypes with no matching function
jsg [Sun, 2 Jun 2024 23:26:39 +0000 (23:26 +0000)]
remove prototypes with no matching function
leave prototypes with functions in OpenSMTPD-extras
ok op@

5 months agosencond -> second; ok florian@
jsg [Sun, 2 Jun 2024 22:41:42 +0000 (22:41 +0000)]
sencond -> second; ok florian@

5 months agough, another typo; spotted by naddy
deraadt [Sun, 2 Jun 2024 18:47:17 +0000 (18:47 +0000)]
ugh, another typo; spotted by naddy

5 months agooops typo
deraadt [Sun, 2 Jun 2024 18:01:37 +0000 (18:01 +0000)]
oops typo

5 months agoprev_plen is only accessed on the 2nd round through the loop.
florian [Sun, 2 Jun 2024 17:44:06 +0000 (17:44 +0000)]
prev_plen is only accessed on the 2nd round through the loop.

Static analysers don't understand this. So give it a value
to shut them up.
Reported by jsg

5 months agoFix indent; pointed out by miod
florian [Sun, 2 Jun 2024 17:38:44 +0000 (17:38 +0000)]
Fix indent; pointed out by miod

5 months agoMake sure we find a link-local address and rdomain
florian [Sun, 2 Jun 2024 17:33:48 +0000 (17:33 +0000)]
Make sure we find a link-local address and rdomain

pointed out by jsg & miod

5 months agogc unused variable
florian [Sun, 2 Jun 2024 17:26:54 +0000 (17:26 +0000)]
gc unused variable

pointed out by jsg

5 months agoGrow amd64 install*.{iso,img} because -fret-clean *.tgz sets are a tiny
deraadt [Sun, 2 Jun 2024 16:00:07 +0000 (16:00 +0000)]
Grow amd64 install*.{iso,img} because -fret-clean *.tgz sets are a tiny
bit bigger.

5 months agoDue to growth, crunchgen must also try to block -fret-clean, so also use
deraadt [Sun, 2 Jun 2024 15:55:36 +0000 (15:55 +0000)]
Due to growth, crunchgen must also try to block -fret-clean, so also use
COPTS+=-fno-ret-clean

5 months agoDue to growth we can't allow -fret-clean behaviour in distrib/special,
deraadt [Sun, 2 Jun 2024 15:54:03 +0000 (15:54 +0000)]
Due to growth we can't allow -fret-clean behaviour in distrib/special,
so use COPTS+=-fno-ret-clean

5 months agooops, we need to hold on to ifap for a bit longer
florian [Sun, 2 Jun 2024 15:43:24 +0000 (15:43 +0000)]
oops, we need to hold on to ifap for a bit longer

5 months agoadd -fret-clean option (amd64 and i386 only at first), defaulting to off.
deraadt [Sun, 2 Jun 2024 15:42:19 +0000 (15:42 +0000)]
add -fret-clean option (amd64 and i386 only at first), defaulting to off.
This causes the caller to cleans the return address off the stack after
a callq completes.  The option is best used in low-level libraries (such as
libc), because libc contains low-level system call stubs.  The option
reduces hints (found on the stale parts of the stack) about libc.so's mapping
location, and together with random-relinking, relro got/pic, and xonly
makes some exploit methods more difficult.
ok mortimer, mlarkin, much discussion with kettenis, in snaps for 2 weeks.

5 months agoadd -fret-clean option (amd64 and i386 only at first), defaulting to off.
deraadt [Sun, 2 Jun 2024 15:40:38 +0000 (15:40 +0000)]
add -fret-clean option (amd64 and i386 only at first), defaulting to off.
This causes the caller to cleans the return address off the stack after
a callq completes.  The option is best used in low-level libraries (such as
libc), because libc contains low-level system call stubs.  The option
reduces hints (found on the stale parts of the stack) about libc.so's mapping
location, and together with random-relinking, relro got/pic, and xonly
makes some exploit methods more difficult.
ok mortimer, mlarkin, much discussion with kettenis, in snaps for 2 weeks.

5 months agopledge, MAP_STACK, and pinsyscall failures have been providing failure
deraadt [Sun, 2 Jun 2024 15:31:56 +0000 (15:31 +0000)]
pledge, MAP_STACK, and pinsyscall failures have been providing failure
visibility with kernel printf(9) (thus, onto console and into dmesg) since
the start of development.  I want to reduce the dmesg spam, and bring
this more into the attention of the user who ran the command, so let's
try using uprintf(9) which puts it onto the active foreground tty (yes,
there maybe cases where there is no tty, but that's ok.  I'll admit
I've considered deleting the logging messages entirely)
tested in snaps for a week

5 months agofix leaks
florian [Sun, 2 Jun 2024 15:19:05 +0000 (15:19 +0000)]
fix leaks

5 months agoUnlike DHCPv4 we will only send multicast messages.
florian [Sun, 2 Jun 2024 14:07:19 +0000 (14:07 +0000)]
Unlike DHCPv4 we will only send multicast messages.

Initialize destination address once and fold udp_send_packet()
into send_packet().
While here improve debugging output a bit.

5 months agowe do not poke around in udp headers
florian [Sun, 2 Jun 2024 13:55:37 +0000 (13:55 +0000)]
we do not poke around in udp headers

5 months agoDHCPv6 is not concerned with link layer addresses.
florian [Sun, 2 Jun 2024 13:35:52 +0000 (13:35 +0000)]
DHCPv6 is not concerned with link layer addresses.
pointed out by martijn