node-pty icon indicating copy to clipboard operation
node-pty copied to clipboard

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

Open htfy96 opened this issue 1 year ago • 0 comments
trafficstars

Environment details

  • OS: Linux
  • OS version: Linux 6.7
  • node-pty version: The one bundled in VSCode, and I believe it still exists on master

Issue description

Related to https://github.com/microsoft/vscode/issues/202558 .

Currently node-pty doesn't close unwanted fds before spawning the process in pty_execvpe. This caused the above issue where Node's open fd(s) accidentally leaks into the spawned process. Considering that very few spawned shell process are aware to the non-std fds, I doubt if this would ever be the desired behavior.

To reduce the amount of surprise, I hope it could do something like https://github.com/facebook/folly/blob/main/folly/Subprocess.cpp#L559 to close all unwanted fds before spawning the shell.


EDIT from @Tyriar:

Lots more information in https://github.com/microsoft/node-pty/issues/710

htfy96 avatar Jan 21 '24 06:01 htfy96