feat: add rsync-compatible --max-alloc=SIZE #247

Closed
TapTap wants to merge 0 commits from feat/max-alloc into dev
Owner

Implements exactly one Phase 1 feature: rsync-compatible --max-alloc=SIZE. Adds binary-unit parsing with safe overflow rejection, propagates the limit through protocol sessions, and enforces it across wire/data/deserialization allocations while preserving existing hard security ceilings.\n\nChecks: strict CMake build, unit tests, integration tests, clang-format, and cppcheck.

Implements exactly one Phase 1 feature: rsync-compatible --max-alloc=SIZE. Adds binary-unit parsing with safe overflow rejection, propagates the limit through protocol sessions, and enforces it across wire/data/deserialization allocations while preserving existing hard security ceilings.\n\nChecks: strict CMake build, unit tests, integration tests, clang-format, and cppcheck.
TapTap added 1 commit 2026-09-03 18:23:56 +02:00
feat: add rsync-compatible max-alloc limit
CI / lint (pull_request) Successful in 11s
CI / sanitizers (undefined) (pull_request) Successful in 38s
CI / sanitizers (address) (pull_request) Successful in 39s
CI / fuzz-build (pull_request) Successful in 15s
CI / coverage (pull_request) Successful in 31s
CI / build-and-test (pull_request) Successful in 1m15s
CI / valgrind (pull_request) Successful in 33s
d69f5db652
TapTap added 1 commit 2026-09-03 22:26:30 +02:00
fix: enforce max alloc across protocol workers
CI / lint (pull_request) Successful in 12s
CI / sanitizers (address) (pull_request) Successful in 36s
CI / sanitizers (undefined) (pull_request) Successful in 37s
CI / fuzz-build (pull_request) Successful in 15s
CI / coverage (pull_request) Successful in 32s
CI / build-and-test (pull_request) Successful in 1m15s
CI / valgrind (pull_request) Successful in 33s
e491e811e3
TapTap added 1 commit 2026-09-04 01:56:42 +02:00
fix: bind allocation sessions in worker threads
CI / lint (pull_request) Successful in 11s
CI / sanitizers (address) (pull_request) Successful in 36s
CI / sanitizers (undefined) (pull_request) Successful in 36s
CI / fuzz-build (pull_request) Successful in 15s
CI / coverage (pull_request) Successful in 32s
CI / build-and-test (pull_request) Successful in 1m15s
CI / valgrind (pull_request) Successful in 33s
0d306940e1
TapTap added 1 commit 2026-09-04 02:12:23 +02:00
fix: make protocol allocation accounting atomic
CI / lint (pull_request) Successful in 11s
CI / sanitizers (address) (pull_request) Successful in 37s
CI / sanitizers (undefined) (pull_request) Successful in 37s
CI / fuzz-build (pull_request) Successful in 15s
CI / coverage (pull_request) Successful in 32s
CI / build-and-test (pull_request) Successful in 1m15s
CI / valgrind (pull_request) Successful in 34s
f990e86309
TapTap added 1 commit 2026-09-04 02:18:46 +02:00
fix: honor explicit protocol allocation sessions
CI / lint (pull_request) Successful in 11s
CI / sanitizers (address) (pull_request) Successful in 36s
CI / sanitizers (undefined) (pull_request) Successful in 36s
CI / fuzz-build (pull_request) Successful in 15s
CI / coverage (pull_request) Successful in 32s
CI / build-and-test (pull_request) Successful in 1m15s
CI / valgrind (pull_request) Successful in 34s
2f553a2a43
TapTap added 1 commit 2026-09-04 02:22:01 +02:00
fix: reject malformed max-alloc sizes
CI / lint (pull_request) Successful in 11s
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 32s
CI / build-and-test (pull_request) Successful in 1m16s
CI / valgrind (pull_request) Successful in 33s
820afd334a
TapTap added 1 commit 2026-09-04 02:25:27 +02:00
fix: enforce max alloc in delta deserialization
CI / lint (pull_request) Successful in 11s
CI / sanitizers (address) (pull_request) Successful in 38s
CI / sanitizers (undefined) (pull_request) Successful in 37s
CI / fuzz-build (pull_request) Successful in 15s
CI / coverage (pull_request) Successful in 32s
CI / build-and-test (pull_request) Successful in 1m15s
CI / valgrind (pull_request) Successful in 33s
04cea295b5
TapTap added 1 commit 2026-09-04 02:29:10 +02:00
fix: bump protocol version for max alloc wire format
CI / lint (pull_request) Successful in 12s
CI / sanitizers (address) (pull_request) Successful in 38s
CI / sanitizers (undefined) (pull_request) Successful in 37s
CI / fuzz-build (pull_request) Successful in 15s
CI / coverage (pull_request) Successful in 32s
CI / build-and-test (pull_request) Successful in 1m15s
CI / valgrind (pull_request) Successful in 33s
638d953b1d
Author
Owner

Merged as part of the Phase 1 rsync-compatibility batch. Content was integrated into dev sequentially via local merges with conflict resolution, then pushed to origin/dev (HEAD 48dfd5d). The incremental-skip regression found during integration (nanosecond mtime comparison at default modify-window=0) was fixed in 48dfd5d. Verification: unit tests 25/25, integration 74 passed. Closing this PR since its changes are already in dev; Gitea's merge endpoint is unavailable (2FA).

Merged as part of the Phase 1 rsync-compatibility batch. Content was integrated into `dev` sequentially via local merges with conflict resolution, then pushed to `origin/dev` (HEAD 48dfd5d). The incremental-skip regression found during integration (nanosecond mtime comparison at default modify-window=0) was fixed in 48dfd5d. Verification: unit tests 25/25, integration 74 passed. Closing this PR since its changes are already in `dev`; Gitea's merge endpoint is unavailable (2FA).
TapTap closed this pull request 2026-09-05 10:45:52 +02:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#247