Merge V10.3P1 - #877
Open
Tess Gauthier (tgauth) wants to merge 297 commits into
Open
Merge V10.3P1#877Tess Gauthier (tgauth) wants to merge 297 commits into
Tess Gauthier (tgauth) wants to merge 297 commits into
Conversation
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@
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
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Tess Gauthier (tgauth)
requested a review
from Vivian Thiebaut (vthiebaut10)
September 15, 2026 17:53
Collaborator
Author
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Copilot stopped reviewing on behalf of
Tess Gauthier (tgauth) due to an error
September 15, 2026 18:14
There was a problem hiding this comment.
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 unspecifiedRFC 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 unspecifiedRFC 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_CLOEXECpipe, butpipe()does not set close-on-exec. Either update the comment or actually set close-on-exec on both ends (e.g., usepipe2(..., O_CLOEXEC)where available, or applyFD_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 theOPENSSL_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 everyssherr_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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Summary
PR Context