fix: complete issues #201-#206 remediation #208

Merged
TapTap merged 17 commits from feat/triage-complete into dev 2026-08-11 21:06:49 +02:00
Owner

Consolidates latest dev, including PR #207 delta validation fixes.

Implemented:

  • #201: server-side destination-root confinement, deletion policy gate, and mandatory client certificates when a CA is configured.
  • #202: bounded manifest/path validation, poll-based receive deadlines, accepted-socket timeouts, and receiver cancellation wakeups.
  • #203: checksum-aware incremental matching; --update skips newer destinations; unsupported append flags fail explicitly.
  • #204: CI dev trigger and bounded fuzz execution.
  • #205: descriptor-relative O_NOFOLLOW writes, secure mkdir traversal, exclusive temporary files and renameat.
  • #206: receiver config propagation, queue hardening, and explicit option behavior.

Validation: strict build, 25 unit tests, 39 integration tests passed (10 skipped, 1 xpass), ASan/UBSan CI, fuzz, Valgrind, coverage, clang-format, and cppcheck all passed.

Residual risks: append/append-verify are rejected rather than implemented; several legacy scanner flags (files-from/relative/links/cvs-exclude) remain outside this safe remediation and should be separately implemented or rejected. Plain TCP remains unauthenticated but is confined to the configured server root; use TLS with a CA for mutual authentication.

Consolidates latest dev, including PR #207 delta validation fixes. Implemented: - #201: server-side destination-root confinement, deletion policy gate, and mandatory client certificates when a CA is configured. - #202: bounded manifest/path validation, poll-based receive deadlines, accepted-socket timeouts, and receiver cancellation wakeups. - #203: checksum-aware incremental matching; --update skips newer destinations; unsupported append flags fail explicitly. - #204: CI dev trigger and bounded fuzz execution. - #205: descriptor-relative O_NOFOLLOW writes, secure mkdir traversal, exclusive temporary files and renameat. - #206: receiver config propagation, queue hardening, and explicit option behavior. Validation: strict build, 25 unit tests, 39 integration tests passed (10 skipped, 1 xpass), ASan/UBSan CI, fuzz, Valgrind, coverage, clang-format, and cppcheck all passed. Residual risks: append/append-verify are rejected rather than implemented; several legacy scanner flags (files-from/relative/links/cvs-exclude) remain outside this safe remediation and should be separately implemented or rejected. Plain TCP remains unauthenticated but is confined to the configured server root; use TLS with a CA for mutual authentication.
TapTap added 5 commits 2026-08-08 20:36:17 +02:00
style: format config validation
CI / lint (pull_request) Failing after 2m9s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
9985a8f6a4
TapTap added 1 commit 2026-08-08 20:40:16 +02:00
fix: satisfy static analysis in regression paths
CI / lint (pull_request) Failing after 2m10s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
a6ec201800
TapTap added 1 commit 2026-08-08 20:43:55 +02:00
test: annotate intentional static-analysis guards
CI / lint (pull_request) Successful in 2m9s
CI / sanitizers (address) (pull_request) Successful in 35s
CI / sanitizers (undefined) (pull_request) Successful in 35s
CI / fuzz-build (pull_request) Successful in 14s
CI / coverage (pull_request) Successful in 31s
CI / build-and-test (pull_request) Successful in 1m15s
CI / valgrind (pull_request) Successful in 32s
33e416324f
TapTap added 1 commit 2026-08-09 11:30:14 +02:00
Merge latest dev into triage remediation
CI / lint (pull_request) Successful in 25s
CI / sanitizers (address) (pull_request) Successful in 35s
CI / sanitizers (undefined) (pull_request) Successful in 36s
CI / fuzz-build (pull_request) Successful in 14s
CI / coverage (pull_request) Successful in 31s
CI / build-and-test (pull_request) Successful in 1m15s
CI / valgrind (pull_request) Successful in 33s
cc143316b2
TapTap added 1 commit 2026-08-09 11:52:21 +02:00
fix: close remaining PR 208 security gaps
CI / lint (pull_request) Failing after 3s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
d64666d456
TapTap added 1 commit 2026-08-09 11:52:52 +02:00
style: format atomic queue cancellation
CI / lint (pull_request) Failing after 27s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
1a0a7a19a5
TapTap added 1 commit 2026-08-09 11:53:56 +02:00
fix: remove redundant poll timeout branch
CI / lint (pull_request) Successful in 26s
CI / sanitizers (address) (pull_request) Successful in 36s
CI / sanitizers (undefined) (pull_request) Successful in 36s
CI / fuzz-build (pull_request) Successful in 14s
CI / coverage (pull_request) Successful in 31s
CI / build-and-test (pull_request) Successful in 1m15s
CI / valgrind (pull_request) Successful in 33s
5bc319f694
TapTap added 1 commit 2026-08-10 17:26:12 +02:00
fix: close remaining PR 208 review gaps
CI / lint (pull_request) Failing after 32s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
7776a63d3d
TapTap added 1 commit 2026-08-10 17:27:35 +02:00
fix: satisfy static analysis in review paths
CI / lint (pull_request) Failing after 31s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
44c2a8bb79
TapTap added 1 commit 2026-08-10 17:28:52 +02:00
fix: satisfy metadata const analysis
CI / lint (pull_request) Failing after 31s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
5f0aed72e7
TapTap added 1 commit 2026-08-10 17:30:15 +02:00
fix: satisfy file API const analysis
CI / lint (pull_request) Successful in 31s
CI / sanitizers (address) (pull_request) Successful in 38s
CI / sanitizers (undefined) (pull_request) Successful in 38s
CI / fuzz-build (pull_request) Successful in 14s
CI / coverage (pull_request) Successful in 31s
CI / build-and-test (pull_request) Successful in 1m16s
CI / valgrind (pull_request) Successful in 32s
d367706689
TapTap added 1 commit 2026-08-10 19:10:06 +02:00
fix: close remaining PR 208 review findings
CI / lint (pull_request) Failing after 33s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
690bf72d7f
TapTap added 1 commit 2026-08-10 19:20:40 +02:00
fix: satisfy metadata const lint
CI / lint (pull_request) Successful in 33s
CI / sanitizers (address) (pull_request) Successful in 37s
CI / sanitizers (undefined) (pull_request) Successful in 37s
CI / fuzz-build (pull_request) Successful in 14s
CI / coverage (pull_request) Successful in 31s
CI / build-and-test (pull_request) Successful in 1m16s
CI / valgrind (pull_request) Successful in 33s
b88e17826e
TapTap merged commit 9396de88db into dev 2026-08-11 21:06:49 +02:00
TapTap deleted branch feat/triage-complete 2026-08-11 21:06:52 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#208