Skip to content

Conversation

@Tyriar
Copy link
Member

@Tyriar Tyriar commented Jan 11, 2026

Prevents leaking file descriptors (pty master FDs, sockets, etc.) to child processes spawned via forkpty(). Uses close_range() syscall on Linux 5.9+, falling back to /proc/self/fd iteration, then brute force.

macOS already handles this via POSIX_SPAWN_CLOEXEC_DEFAULT flag.

Fixes #657
Part of microsoft/vscode#58814

Prevents leaking file descriptors (pty master FDs, sockets, etc.) to
child processes spawned via forkpty(). Uses close_range() syscall on
Linux 5.9+, falling back to /proc/self/fd iteration, then brute force.

macOS already handles this via POSIX_SPAWN_CLOEXEC_DEFAULT flag.

Fixes #657
Part of microsoft/vscode#58814
@Tyriar Tyriar added this to the 1.2.0 milestone Jan 11, 2026
@Tyriar Tyriar requested a review from deepak1556 January 11, 2026 06:39
@Tyriar Tyriar self-assigned this Jan 11, 2026
@Tyriar Tyriar enabled auto-merge January 13, 2026 15:23
@Tyriar Tyriar merged commit 95b07ef into main Jan 13, 2026
9 checks passed
@Tyriar Tyriar deleted the tyriar/657 branch January 13, 2026 15:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Leaking FDs: Close non-std FDs between pty_forkpty and pty_execvpe

3 participants