wolfssh/scripts
John Safranek 41fb47b205 scp: receive through a per-session dirfd
The default SCP receive callback keeps its destination per session, the
base path plus each directory entered, in place of the process working
directory that every session of a threaded server shares. With openat()
it holds that directory open, reaches it and everything created below
it with O_NOFOLLOW, and confirms a reopened parent is the one entered.

- port.h gains WOPENAT, WMKDIRAT, WOLFSSH_O_SEARCH with a search check
  as chdir() made, and WOLFSSH_HAVE_DIRFD, which sizes WOLFSSH so it
  keys only on configure's openat() probe; WOLFSSH_NO_DIRFD opts out
- ports without them open by the full path after a wIsDirNoFollow()
  screen of the base and of each directory entered; a refused base
  frees the receive path
- the receive path is capped at DEFAULT_SCP_FILE_NAME_SZ like the
  send side's; futimes() stands in for futimens() on hosts with
  openat() but not futimens(), such as macOS before 10.13
- unit: ScpRecvCallback_SessionPath walks down and back with the
  working directory untouched, then has the tree moved out from under
  it; a linked base and a file-named directory are refused
- scp.test: a planted symlink at the destination name keeps its target;
  scp-test.yml also builds and tests the fallback

Issue: F-14758, F-13998
2026-10-15 17:14:34 -05:00
..
fwd-bulk.test scripts: capture socket state on a fwd-bulk stall 2026-10-13 16:14:20 -05:00
fwd.test Use wolfssh-options in the test scripts 2026-08-19 16:55:00 -07:00
fwd.test.expect
…
get-put.test scripts: widen the ready-file wait to ten seconds 2026-09-17 15:04:26 +02:00
include.am scripts: add an OpenSSH strict KEX interop test 2026-09-30 22:49:25 -05:00
openssh-interop.test sanitizer.yml, openssh-interop.test: fail instead of skipping in CI 2026-10-08 11:28:25 -07:00
sbom.am fix: read wolfSSL version from WOLFSSL_DIR only 2026-08-27 09:43:33 -07:00
scp.test scp: receive through a per-session dirfd 2026-10-15 17:14:34 -05:00
sftp.test tests: run app-driven sftp in a block build 2026-09-17 10:26:52 -07:00
sshclient.test examples, ide, tests: classify the worker's status at the call site 2026-09-17 10:26:52 -07:00