[LLVMABI] Add a union test for two data bytes in the tail eightbyte
One data byte past the first eightbyte narrows the coercion to i8 and two
do not, which the existing tests left implicit. A 10-byte array in a
union with a pointer keeps i64.
Assisted-by: Cursor / claude-opus-5
[CIR] Split side_effect into memory effects, nounwind, and willreturn
side_effect was carrying three facts at once. It described the memory a
callee may touch, and it was also the only thing lowering derived
nounwind and willreturn from, so any callee with a known memory effect
got both. That is wrong for one that can throw, and willreturn had no
other representation in CIR at all.
const and pure now record the three separately, and the enum is replaced
by a structured #cir.memory_effects carrying the same six ModRef slots as
the LLVM dialect. On an operation it prints compactly, as memory(none)
or memory(read, argmem: readwrite). No lowered IR changes.
Assisted-by: Cursor / claude-opus-5
daemon_logger makes no sense without rc_bg being set as well; so error out
if that's the case.
The tree is currently clean of these but it will prevent potential future
issues.
ok sthen@
switch from SUPERCOP ed25519 to libsodium
The libsodium implementation includes a number of strictness and
malleability checks over the original reference implementation we
have used to this point.
libsodium also offers a more traditional "detached" signature
verification API (SUPERCOP required the signature to be contiguous
with the signed data). Switch to this and avoid a bunch of fiddly
code.
ok markus, deraadt
Reset GSSAPI client state before authentication
Avoids situation where a partially-completed GSSAPI authentication attempt
can retain state that is subsequently used by a later attempt.
Report and feedback Moritz Theile, also reported by several others.
ok markus, deraadt
Correctly handle some options that accept "none"
Some options, including AuthorizedPrincipalsFile were documented as accepting
"none" as a way to disable them, however when overriddes by a ssh_config(5)
Match keyword, this argument was being interpreted as a literal file.
With Chris Rohlf in collaboration with Claude and Anthropic Research
ok markus, deraadt
Propagate authorized_keys "resrict" keyword
The "restrict" keyword was not pervasively being applied to TunnelForwarding
connections (which are administratively disabled by default). This is a
separate problem to the one fixed in openssh-10.5
reported by several people; ok markus, deraadt
Check key and CA sig type during key parsing
Checks key type and CA signature algorithm allowlists as early as
possible during public key deserialisation.
Use this in the client and server to reduce attack surface from
disallowed key/signature types.
With Chris Rohlf in collaboration with Claude and Anthropic Research
ok markus, deraadt
[CIR] Split side_effect into memory effects, nounwind and willreturn
side_effect was carrying three facts at once. It described the memory a
callee may touch, and it was also the only thing lowering derived
nounwind and willreturn from, so any callee with a known memory effect
got both. That is wrong for one that can throw, and willreturn had no
other representation in CIR at all.
const and pure now record the three separately, and the enum is replaced
by a structured #cir.memory_effects carrying the same six ModRef slots as
the LLVM dialect. On an operation it prints compactly, as memory(none)
or memory(read, argmem: readwrite). No lowered IR changes.
Assisted-by: Cursor / claude-opus-5
Add WarnWeakCrypto to sshd
This option was previously available for the client only. This adds it to
sshd, so allow logging of non-PQ key exchanges.
ok markus, deraadt
Add ACPI layer into vmd
This creates the required tables for most modern OSes as well as providing
a PM timer and HPET implementation for when that is hooked up later.
This code is compiled into vmd but not yet used.
ok dv@
Allow specification of agent socket directories
Add AgentSocketPath for sshd_config and -A flag for ssh-agent.
Agent socket directories may be shared or user-specific.
Shared directories (specified like "shared:/tmp") will cause the listening
program to create a temporary subdirectory ssh-XXXXXXXXXX under the requeted
path to hold the socket. This supports the old sshd/ssh-agent behaviour before
we switched to the socket directory being under ~/.ssh/agent
User-specific directories just create the socket directly in the requested
directory. This is the default, as user:.ssh/agent
bz3860; ok markus, deraadt
[mlir][SCF] Avoid crash in parallel loop unrolling test pass (#222644)
This fixes crashes in `--test-parallel-loop-unrolling` when
`unroll-factors` is missing or contains zero.
Previously, the test pass forwarded an empty or invalid factor list to
the parallel-loop unrolling utility, violating its preconditions and
triggering an assertion.
The pass now emits an error and signals pass failure when:
* `unroll-factors` is not provided.
* Any unroll factor is zero.
Regression tests verify the diagnostics for both invalid inputs using
`-verify-diagnostics`.
Fixes #222535.
Co-authored-by: Purnima Shrivastava <purnimashrivastava05@.com>