Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Proposal: Add open_process_args, for proc+args instead of a shell #7794
Original bug ID: 7794
I propose to add variants of the
The standard library should encourage safe interfaces by making them more convenient than unsafe interfaces.
In particular, the safe process execution via "proc:string + args:string list" should be encouraged over shell command execution.
However, the nice, high-level open_process function is only available for shell commands. For safe execution (proc+args) there is only create_process which is relatively low-level.
Comment author: vog
Thanks for pointing to the related PR about "Filename.quote_command".
I'd just like to mention that I don't see Filename.quote_command as part of the solution, but more as part of the problem.
The respective low-level calls (execve, execvep, etc.) take prg+argv directly, and so should the implementation of "open_process_args".
It makes no sense to involve the shell at all. Calling the shell and escaping the arguments would just introduce a new possible point of (security) failure without any benefit: It would merely instruct the shell to perform what we should have performed on OCaml side in the first place.