Repository navigation
fix: bound control pipe request reads - #6
Draft
RomainROCH wants to merge 2 commits into
Draft
RomainROCH wants to merge 2 commits into
RomainROCH wants to merge 2 commits into
Conversation
Validated process-owned idle-power requests and virtual S3 acceptance.
8 tasks done
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.
An incomplete control-pipe client can currently hold the single reader indefinitely. Limit each newline-terminated request to 4096 wire bytes and one total second using nonblocking Win32 byte reads. Empty, malformed, oversized, disconnected and unterminated requests are rejected; rejected connections also keep nonblocking replies so an unread large error cannot stall the next accept. Valid commands retain their existing decoder and reply behavior.
The isolated regression harness runs the production control/status loops on unique endpoints with an inert UI consumer. It verifies size boundaries and fragments, silent and trickling clients, disconnect without dispatch, recovery, status availability before the control deadline, and orderly shutdown with an incomplete client. Control permissions and the same-user/elevation policy remain unchanged.
Validation:
Independent production and test/documentation reviews found no remaining blocker in this correction.
This draft targets
dev. The branch starts at the publishedmainmerge commit942fd5919cf7cf3baddf4614becb877ca0483da1, which already contains the currentdevtip. The diff againstdevis limited tosrc/ipc.rs,tests/ipc_request_limits.rs, anddocs/SECURITY_AUDIT.md. No additional elevation requirement is introduced. The full system smoke was not run locally; the Windows CI result is recorded below.Windows CI
CI run 37222760065 passed for head
60399554db753cb010a6770e24ec1b8fa2dcae93:cargo check, 42 unit-test executions plus 6 IPC test executions,cargo build --release, and smoke tests (17/17 passed, 4 skipped). The skipped smoke cases cover two non-elevated status checks, the absent Update Orchestrator reboot task, and autostart without an interactive linked token. The workflow artifact was uploaded successfully. This run does not include strict Clippy or live cross-elevation validation.