OpenBSD cvs log

created 2025-02-16T02:04:05Z
begin 2025-02-12T00:00:00Z
end 2025-02-13T00:00:00Z
path src/sys
commits 5

date 2025-02-12T14:11:26Z
author deraadt
files src/sys/kern/kern_pledge.c log diff annotate
src/sys/kern/vfs_syscalls.c log diff annotate
message Changes to the per-process unveil datastructures can be raced by either
pledge() [removing all path promises] or unveil() [adding new paths], against
namei() inspecting in other thread system calls. Detailed locking for this
would make future work on vfs unlocking difficult, so use the simplest way
for now: SINGLE_UNWIND
ok claudio

date 2025-02-12T20:18:31Z
author bluhm
files src/sys/arch/amd64/amd64/db_interface.c log diff annotate
message Fix ddb machine sysregs stack overflow.

In 64-bit mode, the operand size of SIDT and SGDT instructions is
8+2 bytes. On amd64 ddb command 'machine sysregs' reserved only
int64_t, resulting in a stack overflow. Use struct region_descriptor
which has the correct memory layout for IDTR and GDTR.
Allow to call db_sysregs_cmd() also with single processor kernel.

from Sebastian Sturm; OK deraadt@ miod@

date 2025-02-12T21:28:10Z
author bluhm
files src/sys/netinet/in_pcb.c log diff annotate
message Use socket lock for inpcb notify.

The notify and ctlinput functions were not MP safe. They need
socket lock which can be aquired by in_pcbsolock_ref(). Of course
in_pcbnotifyall() has to be called without holding a socket lock.
Rename in_rtchange() to in_pcbrtchange(). This is the correct
namespace and the functions take care of the inpcb route.

OK mvs@

date 2025-02-12T21:28:11Z
author bluhm
files src/sys/netinet/in_pcb.h log diff annotate
src/sys/netinet/tcp_subr.c log diff annotate
src/sys/netinet/tcp_timer.c log diff annotate
src/sys/netinet/udp_usrreq.c log diff annotate
src/sys/netinet6/in6_pcb.c log diff annotate
src/sys/netinet6/raw_ip6.c log diff annotate
message Use socket lock for inpcb notify.

The notify and ctlinput functions were not MP safe. They need
socket lock which can be aquired by in_pcbsolock_ref(). Of course
in_pcbnotifyall() has to be called without holding a socket lock.
Rename in_rtchange() to in_pcbrtchange(). This is the correct
namespace and the functions take care of the inpcb route.

OK mvs@

date 2025-02-12T21:41:53Z
author bluhm
files src/sys/kern/kern_sysctl.c log diff annotate
message Use shared net lock in sysctl fill file.

The macro FILLINPTABLE() already uses shared net lock for fill_file().
The FILLIT() sysctls should do the same instead of grabbing exclusive
net lock.

OK mvs@