Skip to content

Merge V10.3P1 - #877

Open
Tess Gauthier (tgauth) wants to merge 297 commits into
PowerShell:latestw_allfrom
tgauth:merge-v10.3P1
Open

Tess Gauthier (tgauth) wants to merge 297 commits into
PowerShell:latestw_allfrom
tgauth:merge-v10.3P1

Conversation

@tgauth

Copy link
Copy Markdown
Collaborator

PR Summary

PR Context

  • sync w/ upstream's V_10_3_P1 tag

Damien Miller (djmdjm) and others added 30 commits October 31, 2025 08:04
Allison Feedback tb@, ok tb@ markus@

OpenBSD-Commit-ID: e8edf8adffd5975d05769dde897df882d7933526
about 0.5kb per binary and makes life easier for portable; with/ok dtucker@

OpenBSD-Commit-ID: 672d7390f78bb6581c12661d7f5adc8a9c6be564
OpenBSD-Regress-ID: fb62024eb753c61b4d78402ec8378af839fad26c
can no longer get set to "gcc3".

OpenBSD-Regress-ID: 02351ea947975b80be60b9a8c6e4dbb57789e890
OpenBSD-Regress-ID: a145f09c1efb1fcd3924544463f1f94f5d4805c0
avoids confusion with system header when included from files under
openbsd-compat/
Avoids early fatal() if the user doesn't exist.

Reported by Viswesh Narayanan; ok dtucker@
execution; ok markus

OpenBSD-Commit-ID: 993628a5b361e30aa48bbb4c07667a280f3f23ab
OpenBSD-Commit-ID: 7d047bbff6964b9abbc04e9b3e2e1b4cc1db0aea
sshkey_ec_validate_public()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Checking nQ == infinity is not needed for cofactor 1 curves.
Checking x and y coordinates against order is not needed either.

patch from Szilárd Pfeiffer, with further refinement by tb@
ok tb@

OpenBSD-Commit-ID: ef985e2be7c64e215d064757d3fc65eb181e8ede
OpenBSD-Regress-ID: 577ef2f36ee592528448e8c0f33499e2e3512054
OpenBSD-Regress-ID: f789d46e99d2598929e3c2d00b45c47cc3102501
OpenBSD-Regress-ID: a3a4dae538c831b3810f69abc34ad8504dc3c460
change

OpenBSD-Regress-ID: 50b7f49021b8085728d0544275e141fb1bf4a2b5
setenv commands.

Unbreaks ssh-agent for home directory paths that contain whitespace.

Based on fix from Beat Bolli via bz3884; feedback/ok dtucker@

OpenBSD-Commit-ID: aaf06594e299940df8b4c4b9f0a1d14bef427e02
Apparently these are YAML magic when followed by whitespace
Explicitly check for OPENSSL_NO_EC, since otherwise the test will link
but then fail at runtime.
review

OpenBSD-Commit-ID: b296bd6056f33fd567ca0d5e9123dac1ec00f037
v0.0.4

tested/ok tb@

OpenBSD-Commit-ID: 525a62549efbf53492adcb2c57e4872cdbaeed62
portable

unused on OpenBSD (nothing sets MISSING_BUILTIN_POPCOUNT), but it
makes syncing much easier.

OpenBSD-Commit-ID: 496446300d82615b24f83eca886b8fabdbee445b
and ERR_load_crypto_strings(). These are no-ops in LibreSSL, and in
Portable have been mostly replaced by a call to OPENSSL_init_crypto()
in the compat layer.  ok tb@

OpenBSD-Commit-ID: 4c3e0af10fe276766054eda34428a37a5606d3ea
We already have OPENSSL_init_crypto() in the compat layer (now with a
check of its return code, prompted by tb@). Prompted by github PR#606
from Dimitri John Ledkov.  ok beck@
Damien Miller (djmdjm) and others added 22 commits March 30, 2026 18:50
set for ProxyJump/-J on the commandline as we do for destination user/host
names.

Specifically, they are no longer allowed to contain most characters
that have special meaning for common shells. Special characters are
still allowed in ProxyJump commands that are specified in the config
files.

This _reduces_ the chance that shell characters from a hostile -J
option from ending up in a shell execution context.

Don't pass untrusted stuff to the ssh commandline, it's not intended
to be a security boundary. We try to make it safe where we can, but
we can't make guarantees, because we can't know the parsing rules
and special characters for all the shells in the world, nor can we
know what the user does with this data in their ssh_config wrt
percent expansion, LocalCommand, match exec, etc.

While I'm in there, make ProxyJump and ProxyCommand first-match-wins
between each other.

reported by rabbit; ok dtucker@

OpenBSD-Commit-ID: f05ad8a1eb5f6735f9a935a71a90580226759263
TEST_SSH_HOSTBASED_AUTH=setupandrun.

This will MODIFY THE CONFIG OF THE SYSTEM IT IS RUNNING ON to enable
hostbased authentication to/from itself and run the hostbased tests.  It
won't undo these changes, so don't do this on a system where this matters.

OpenBSD-Regress-ID: ae5a86db1791a2b8f999b07b5c8cc756d40bf645
on the warning about modifying the system config.

OpenBSD-Regress-ID: 68038da909f9c992375b7665dab0331d6af426b7
OpenBSD-Regress-ID: 92721cad4c219fe62b7b795a73505c22e56f09e0
OpenBSD-Regress-ID: ab64fd0a86422df1eadacde56c0a2cff5d93425d
OpenBSD-Regress-ID: 400dc1b5fb7f2437d0dfbd2eb9a3583dafb412b3
This fixes the build with --without-openssl on musl. glibc worked
previously because it got stdio.h implicitly through resolv.h.
Not all dd implementations support this. POSIX only specifies
suffixes for block size operands.

Instead, just use 1024k to avoid the special case. This also removes
an incorrect redirection operator that appeared in the 1m case.
OpenSSH doesn't support PAM changing its conception of the
username via a module calling pam_set_item(h, PAM_USER, ...).
We were supposed to bail out here, but I messed up while "fixing"
this last time and dropped a return statement.

Reported by Mike Damm
to a value <10 using the single-argument form of MaxStartups (e.g.
MaxStartups=3). This doesn't affect the three-argument form of the directive
(e.g. MaxStartups 3:20:5).

Patch from Peter Kaestle via bz3941

OpenBSD-Commit-ID: 1ad093cae69f55ebfdea1ab24318aefd593d63b8
ControlMaster=ask/autoask and "ssh -O proxy ..."; reported by Michalis
Vasileiadis

OpenBSD-Commit-ID: 8dd7b9b96534e9a8726916b96d36bed466d3836a
without the -p (preserve modes) flag set, clear setuid/setgid bits from
downloaded files as one might expect.

AFAIK this bug dates back to the original Berkeley rcp program.

Reported by Christos Papakonstantinou of Cantina and Spearbit.

OpenBSD-Commit-ID: 49e902fca8dd933a92a9b547ab31f63e86729fa1
algorithm allowlists: HostKeyAlgorithms, PubkeyAcceptedAlgorithms and
HostbasedAcceptedAlgorithms.

Previously, if any ECDSA type (say "ecdsa-sha2-nistp521") was
present in one of these lists, then all ECDSA algorithms would
be permitted.

Reported by Christos Papakonstantinou of Cantina and Spearbit.

OpenBSD-Commit-ID: c790e2687c35989ae34a00e709be935c55b16a86
the commandline to earlier in main(), specifically before some contexts where
a username with shell characters might be expanded by a %u directive in
ssh_config.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We continue to recommend against using untrusted input on
the SSH commandline. Mitigations like this are not 100%
guarantees of safety because we can't control every
combination of user shell and configuration where they are
used.

Reported by Florian Kohnhäuser

OpenBSD-Commit-ID: 25ef72223f5ccf1c38d307ae77c23c03f59acc55
OpenBSD-Commit-ID: 05e22de74e090e5a174998fa5799317d70ad19c4
OpenBSD-Regress-ID: d22c66ca60f0d934a75e6ca752c4c11b9f4a5324
Copilot AI lite review requested due to automatic review settings September 15, 2026 17:52
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@tgauth

Copy link
Copy Markdown
Collaborator Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

Copilot was unable to run its full agentic suite in this review.

Pull request overview

Updates the codebase to a newer upstream OpenSSH snapshot (notably 10.3), including crypto/error-reporting improvements, authentication/agent-forwarding extensions, and expanded regression/unit test coverage.

Changes:

  • Bump versioning to 10.3 and refresh multiple upstream-imported sources/manpages.
  • Improve crypto initialization/error reporting (e.g., libcrypto error plumbing) and refactor RNG reseeding.
  • Add/adjust protocol features and tests (e.g., mux “conninfo/channels”, ssh-add -Q, webauthn SK cert algs, multi-file revoked keys/KRLs, new regression tests).

Reviewed changes

Copilot reviewed 247 out of 252 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
version.h Bump Windows version string to 10.3
umac.c Typo fixes, stdint type alignment, header cleanup
uidswap.c Normalize include ordering for grp.h
ttymodes.c Remove unused include
sshsig.c Update cert authority checking call signature usage
sshpty.c Reorder includes
sshlogin.c Remove unused include
sshkey.h Adjust types to stdint, update authority-check prototypes, comment typo
ssherr.h Add ssherr_libcrypto() prototype
ssherr.c Return detailed libcrypto error when available
ssherr-nolibcrypto.c Stub ssherr_libcrypto() when libcrypto unavailable
ssherr-libcrypto.c Implement libcrypto error extraction/logging
sshd.c Use sys/queue.h; refactor PRNG reseed; add invalid-user penalty exit handling
sshd.0 Regenerated manpage footer/version string
sshd-auth.c Use sys/tree.h/sys/queue.h; add Windows telemetry hooks; call mm_sshkey_setcompat(); use FD_CLOSEONEXEC
sshconnect.h Remove redundant forward decl
sshconnect.c Multi-file RevokedHostKeys support; warn on no-rekey servers; misc include tidy
sshbuf.c Add sshbuf_consume_upto_child() helper
sshbuf-misc.c Fix hex parsing bug for 'A'..'F'
sshbuf-getput-crypto.c Fix SSHBUF_INTERNAL define ordering
ssh_config.5 Document new webauthn SK algs; token expansion safety note
ssh_config.0 Regenerated documentation output consistent with ssh_config.5
ssh_api.h Use sys/queue.h include
ssh_api.c Use stdint types for seqnr
ssh.1 Document mux commands conninfo/channels and escape ~I
ssh.0 Regenerated docs (Unix-domain wording, mux commands, escape ~I)
ssh-sk-helper.c Remove unused include in non-SK build
ssh-sk-helper.0 Regenerated manpage footer/version string
ssh-sk-client.c Improve helper exec failure reporting (exec pipe) and include ordering
ssh-rsa.c Include cleanup and openssl-compat include ordering
ssh-pkcs11.h Add header comment; stdint type updates
ssh-pkcs11-helper.c sanitise_stdfd()/closefrom() hardening
ssh-pkcs11-helper.0 Regenerated manpage footer/version string
ssh-pkcs11-client.c Close inherited fds in helper child
ssh-keysign.c Move pledge after stdio setup
ssh-keysign.0 Regenerated manpage footer/version string
ssh-keyscan.c Use sys/queue.h and adjust sys includes
ssh-keyscan.0 Regenerated manpage footer/version string
ssh-keygen.1 Improve certificate examples/docs (principals, identifiers)
ssh-keygen.0 Regenerated docs corresponding to ssh-keygen.1
ssh-ed25519.c Remove unused include
ssh-ed25519-sk.c Remove unused includes
ssh-ecdsa.c Include cleanup and openssl-compat include ordering
ssh-ecdsa-sk.c Spelling fix; support webauthn SK cert sig alg; add impl struct
ssh-agent.1 Fix default pattern string leading slash
ssh-agent.0 Regenerated docs (Unix-domain wording, default patterns)
ssh-add.1 Add -Q option docs
ssh-add.0 Regenerated docs (add -Q, Unix-domain wording)
srclimit.h Add invalid-user penalty/exit codes
sntrup761.sh Adjust sed transforms for improved randomness functions
sntrup761.c Randomness refactor: single randombytes() fetch + explicit_bzero()
sftp.0 Regenerated manpage footer/version string
sftp-usergroup.c Use sys/tree.h; add glob.h
sftp-server.0 Regenerated manpage footer/version string
sftp-glob.c Add glob.h include
sftp-common.h Use stdint types
sftp-common.c Include ordering cleanup
sftp-client.h Remove conditional glob includes; use stdint types; sftp_init signature
session.c Agent forwarding “agent-req” support; env propagation for XDG_RUNTIME_DIR; sys/queue include
serverloop.c Fix unused-connection timeout deadline handling; use stdint seq types; sys/queue include
scp.c Use system glob; local cmd formatting; handle “..” path edge cases; tighten umask when !pflag; include reorder; typo fix
scp.0 Regenerated manpage footer/version string
sandbox-seccomp-filter.c Allow additional syscalls (riscv_hwprobe, uname) in preauth
rijndael.c Upstream version bump only
regress/unittests/utf8/Makefile Link ssherr-libcrypto.c into unit test build
regress/unittests/test_helper/test_helper.h Switch to stdint types; add double assertions
regress/unittests/test_helper/test_helper.c Implement assert_double(); switch to stdint types
regress/unittests/sshsig/Makefile Use ed25519-openssl.c; include ssherr-libcrypto.c
regress/unittests/sshkey/tests.c Add stdio include
regress/unittests/sshkey/test_sshkey.c Use uint64_t cast
regress/unittests/sshkey/Makefile Use ed25519-openssl.c; include ssherr-libcrypto.c
regress/unittests/sshbuf/test_sshbuf_getput_fuzz.c Switch to stdint types
regress/unittests/sshbuf/test_sshbuf_getput_crypto.c Use stdint cast
regress/unittests/sshbuf/test_sshbuf_fuzz.c Switch to stdint types
regress/unittests/sshbuf/test_sshbuf.c Add test for sshbuf_consume_upto_child()
regress/unittests/sshbuf/Makefile Include ssherr-libcrypto.c
regress/unittests/misc/test_misc.c Add tests for stringlist helpers
regress/unittests/misc/test_convtime.c Add convtime_double() tests
regress/unittests/misc/Makefile Include ssherr-libcrypto.c
regress/unittests/match/Makefile Include ssherr-libcrypto.c
regress/unittests/kex/tests.c Add includes for test build
regress/unittests/kex/Makefile Swap ed25519/hash sources; include ssherr-libcrypto.c
regress/unittests/hostkeys/test_iterate.c Tighten comment-compare condition
regress/unittests/hostkeys/Makefile Swap ed25519/hash sources; include ssherr-libcrypto.c
regress/unittests/conversion/Makefile Include ssherr-libcrypto.c
regress/unittests/bitmap/Makefile Include ssherr-libcrypto.c
regress/unittests/authopt/tests.c Free opts in failure macro
regress/unittests/authopt/Makefile Swap ed25519/hash sources; include ssherr-libcrypto.c
regress/unittests/Makefile.inc Always enable -Wold-style-definition
regress/ssh-pkcs11.sh Add PKCS#11 regression test script
regress/sftp-resume.sh Replace 1m case with 1024k
regress/scp3.sh Add recursive “..” test for sftp mode; diff -N fallback
regress/scp.sh Add recursive “..” tests for sftp mode
regress/percent.sh Adjust token-expansion coverage list and disable literal-control-char user test
regress/multiplex.sh Add conninfo tests and algorithm/compression assertions; enable all kexes
regress/modpipe.c Header cleanup; stdint type change
regress/misc/ssh-verify-attestation/Makefile Swap ed25519/hash sources; enable -Wold-style-definition
regress/misc/sk-dummy/fatal.c Refactor to sshlog/sshlogv + sshfatal using va_list
regress/misc/sk-dummy/Makefile Build fatal.c; use ed25519-openssl.c; enable -Wold-style-definition
regress/kbdint.sh Add optional keyboard-interactive test (requires password file)
regress/hostbased.sh Add “setupandrun” mode; clarify requirements; add IgnoreRhosts no
regress/check-perm.c Remove incorrect embedded header comment
regress/cfgmatch.sh Backup configs; add invalid subsystem startup checks and bz3906 guard
regress/cert-userkey.sh Test multiple RevokedKeys files; adjust wildcard/empty principals expectations
regress/cert-hostkey.sh Test multiple KRL files; rework principals tests incl. wildcards/empty
regress/Makefile Add tests, clean fakehome, add new local tests
readpass.c Remove unused include
readconf.h Support multiple revoked host keys; add hostname/user validation prototypes; parse_jump signature
progressmeter.c Widen bytes_per_second to long long
pathnames.h Add _PATH_LS, reorder defines, align formatting
openbsd-compat/sha2.c Switch include to bsd-sha2.h
openbsd-compat/openssl-compat.h ssh_libcrypto_init now returns int
openbsd-compat/openssl-compat.c Rewrite ssh_libcrypto_init() using OPENSSL_init_crypto opts
openbsd-compat/openbsd-compat.h Switch include to bsd-sha2.h
openbsd-compat/fake-rfc2553.c Improve gai_strerror messages
openbsd-compat/bsd-poll.h Add nfds_t selection for ulong case
openbsd-compat/bsd-openpty.c Add stdio include
openbsd-compat/bsd-misc.h Add unveil() prototype when missing
openbsd-compat/bsd-misc.c Add unveil() stub; include sys/ioctl.h
openbsd-compat/bcrypt_pbkdf.c Comment typo fix; mark ciphertext as nonstring
nchan.c Remove unused sys-queue include and ssherr include
myproposal.h Add webauthn SK algs to proposals
msg.c Remove unused includes
monitor_wrap.h Add mm_sshkey_setcompat() prototype
monitor_wrap.c Add sys/queue.h include; handle EPIPE in mm_log_handler; add MONITOR_REQ_SETCOMPAT sender; macro signature tweak
monitor_fdpass.c Include ordering cleanup
monitor.h Add MONITOR_REQ_SETCOMPAT and monitor_* helpers prototypes
moduli.0 Regenerated manpage footer/version string
misc.h Add stringlist helpers; add convtime_double(); switch to stdint; add FD_CLOSEONEXEC macro
misc-agent.c Guard stale-socket code for non-Windows
mdoc2man.awk Improve handling of Dl and Ns tokens
mac.h Switch seqno types to stdint
mac.c Switch seqno types and alignment union to stdint
loginrec.h Add LTYPE_FAILED type constant
loginrec.c Spelling fixes; map LTYPE_FAILED to LOGIN_PROCESS; record_failed_login uses LTYPE_FAILED
log.c Send raw (non-strnvis) message to log_handler; include cleanup
krl.h Switch version/serial types to stdint
kexgexs.c include ordering; switch seq types to stdint
kexgexc.c include ordering; switch seq types to stdint; include cleanup
kexgex.c Upstream version bump only
kexgen.c Switch seq types to stdint
kexecdh.c Remove unused includes
kexdh.c include ordering; remove unused includes
kex.h Add KEX_HAS_NEWAGENT; switch seq types to stdint
kex.c Add ext-info “agent-forward”; switch seq types to stdint; include cleanup
kex-names.c Remove unused includes
hostfile.c Initialize fp; avoid double-free; free fp on exit
hmac.c Remove unused include
hash.c Remove file; move sha512 hash impl into crypto_api.h
gss-serv.c Use sys/queue.h; add netdb include; fix gethostname size usage; skip storecreds when disabled
gss-serv-krb5.c Upstream version bump only
gss-genr.c Upstream version bump only
entropy.h Rename header guard; replace rexec rng seed functions with reseed_prngs()
entropy.c Check ssh_libcrypto_init() return; add reseed_prngs(); use RAND_poll/seed
ed25519.c Compile guard for OPENSSL_HAS_ED25519
dns.c Switch byte types to stdint; remove unused include
dispatch.h Switch dispatch_fn seq type to stdint
dispatch.c Switch seq type to stdint
digest-libc.c Switch typedefs to stdint; fix error return path to free ctx
dh.c Include openssl-compat header
defines.h Add IPTOS_DSCP_VA; add nonstring fallback; remove USE_SYSTEM_GLOB detection
crypto_api.h Inline crypto_hash_sha512 (OpenSSL or SHA2) and remove hash.c dependency
contrib/win32/win32compat/inc/sys/tree.h Add Windows shim redirect for sys/tree.h
contrib/win32/win32compat/inc/sys/queue.h Add Windows shim redirect for sys/queue.h
contrib/win32/win32compat/inc/sys/mount.h Add empty Windows shim for sys/mount.h
contrib/win32/win32compat/glob.h Add Windows shim redirect for glob.h
contrib/win32/openssh/version.rc Bump Windows rc version data to 10.3
contrib/win32/openssh/libssh.vcxproj Add ed25519-openssl.c and ssherr-libcrypto.c; remove hash.c
contrib/suse/openssh.spec Bump package version to 10.3p1
contrib/redhat/openssh.spec Bump package version to 10.3p1
config.h.in Add HAVE_ATTRIBUTE__NONSTRING__, HAVE_UNVEIL, POLL_NFDS_T_ULONG; adjust glob comment; remove unused defines
compat.c Include stdint; switch bug flags to uint32_t
clientloop.h Switch confirm callback seq type; add mux command IDs
cipher.c Remove unused include
cipher-chachapoly-libcrypto.c Remove unused includes
cipher-aesctr.c Adjust WITH_OPENSSL guard placement
channels.h Add agent_new field; const correctness; stdint seq types; add agent-forward prototype
chacha.c Mark sigma/tau as nonstring
canohost.c Switch port type to uint16_t; remove unused include
authfile.c Remove unused includes
authfd.h Add ssh_agent_query_extensions(); add extension response/failure message IDs
authfd.c Add ssh_agent_query_extensions(); adjust signature-type checking for SK keys; include ordering
auth2.c Switch seq types to stdint; store service/style earlier
auth2-pubkeyfile.c Tighten principals matching; include xmalloc; update authority check call
auth2-pubkey.c Use system glob; improve key type mismatch detection for ECDSA; update authority check call
auth2-none.c Remove unused includes
auth2-hostbased.c Improve key type mismatch detection for ECDSA; switch cert host checking API usage
auth2-gss.c Switch seq types; cleanup trailing endif/comment
auth2-chall.c Switch seq type; use mm_* devices; typo fix; remove privsep_challenge_enable()
auth.h Remove privsep_challenge_enable() prototype
auth.c Support multiple revoked keys files
auth-pam.h Remove unused do_pam_chauthtok; add sshpam_priv_kbdint_authdone()
auth-options.c Use sys/queue.h include
auth-krb5.c Upstream version bump only
auth-bsdauth.c Remove non-mm device definition
audit-bsm.c Switch u_int32_t pointers to uint32_t
addrmatch.c Remove unused includes; typo fix in comment
addr.h Switch to stdint address types
addr.c Switch port arg type to uint16_t
README.md Update CI badge URLs; expand supported libcrypto list; update oss-fuzz link
README Update release notes link to 10.3p1
PROTOCOL Upstream version bump only
Makefile.in Adjust object lists (remove hash.o, add ed25519-openssl.o, ssherr-libcrypto.o, ssherr-nolibcrypto.o, ssh-pkcs11.o); distclean include cleanup; add TEST_SSH_TMUX
INSTALL Expand supported libcrypto list and PIC wording
.skipped-commit-ids Add skipped commit entry
.github/run_test.sh Auto-enable kbdint test when PAM/password file present
.github/configs CI config tweaks: audit debug/linux options; valgrind pam config; boringssl flags; add extra tests; solaris bsm note
Suppressed comments (6)

misc.h:1

  • The header declares convtime_double() twice. This can trigger compiler warnings (and is easy to miss during future refactors). Remove the duplicate prototype so there is a single declaration.
    channels.h:1
  • There are two issues here: (1) the comment has a typo (reqests) and refers to an unspecified RFC XXX; (2) the newly added function prototype is misspelled (reqest), which risks a missing/incorrect symbol and link errors if the implementation uses the correct spelling. Please fix the prototype name to match the implementation and correct/clarify the comment.
    channels.h:1
  • There are two issues here: (1) the comment has a typo (reqests) and refers to an unspecified RFC XXX; (2) the newly added function prototype is misspelled (reqest), which risks a missing/incorrect symbol and link errors if the implementation uses the correct spelling. Please fix the prototype name to match the implementation and correct/clarify the comment.
    ssh-sk-client.c:1
  • The comment says this creates an O_CLOEXEC pipe, but pipe() does not set close-on-exec. Either update the comment or actually set close-on-exec on both ends (e.g., use pipe2(..., O_CLOEXEC) where available, or apply FD_CLOSEONEXEC()/fcntl() to both fds). This matters because leaking the read end across exec can keep the pipe open unexpectedly and complicate failure detection/debugging.
    openbsd-compat/openssl-compat.c:1
  • This rewrite assumes OPENSSL_init_crypto() and the OPENSSL_INIT_* flags are available and compatible across all supported libcrypto implementations mentioned elsewhere in the repo (LibreSSL/OpenSSL/AWS-LC/BoringSSL). Previously there were feature-guarded fallbacks. To avoid build breaks (missing macros/symbols or differing semantics), consider restoring compile-time feature checks and/or compatibility fallbacks for non-OpenSSL libcryptos.
    ssherr-libcrypto.c:1
  • ERR_load_crypto_strings() is deprecated in newer OpenSSL and is also unnecessary to call on every ssherr_libcrypto() invocation. Consider removing it (or ensuring it's handled once during libcrypto initialization) to avoid repeated global initialization work and potential warnings with newer libcrypto versions.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread authfd.c
Comment thread auth2-pubkeyfile.c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.