Fix pipe broken issue #818
Draft
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.
This pull request improves the security and reliability of named pipe communication in the
lib/train/transports/local.rbtransport by enforcing strict pipe ownership checks and handling pipe closure scenarios more gracefully. The main focus is on ensuring only the intended Windows user can access the named pipe and making the PowerShell server more robust.Description
Security and Access Control:
acquire_pipeto ensure that only the current Windows user can connect to the named pipe. If the pipe is owned by another user, an explicit error is raised to prevent unauthorized access.start_pipe_serverto explicitly set pipe security, granting full control only to the current user when creating the named pipe.current_windows_userandpipe_owned_by_current_user?to reliably determine the current user and verify pipe ownership before connecting.Reliability Improvements:
System.IO.IOException.Related Issue
Types of changes
Checklist: