[Lldb-commits] [PATCH] Apply SOCK_CLOEXEC flag to socket API functions in order to avoid handle leakage to a forked child process.

Greg Clayton clayborg at gmail.com
Tue Nov 11 11:30:28 PST 2014


> On Nov 10, 2014, at 8:03 PM, Oleksiy Vyalov <ovyalov at google.com> wrote:
> 
>>> ! In D6204#10, @zturner wrote:
>> Can I also request that the variable *not* be called close_on_exec?.  It is
>> possible to implement an equivalent on Windows, but calling it close on
>> exec will be confusing to people on Windows.  Can we come up with a more
>> generic name?  On Windows this would be called "inherit handles", which to
>> me sounds like a better name than close on exec, but I may be biased.  Is
>> "inherit handles" confusing to people on non-Windows?
>> 
>> In other words, I'm proposing
>> 
>> virtual lldb::ConnectionStatus ConnectionFileDescriptor::Connect(const char
>> *s, Error *error_ptr, bool close_on_exec = true);
>> 
>> would become
>> 
>> virtual lldb::ConnectionStatus ConnectionFileDescriptor::Connect(const char
>> *s, Error *error_ptr, bool inherit_handles = false);
> 
> It sounds good to me to call this variable inherit_handles in order to make it more platform-independent.

Handles is a windows term and doesn't make sense for unix. How about "child_processes_inherit"?

> As I can see ConnectionFileDescriptor::Connect is overrides pure method from Connection::Connect (const char *url, Error *error_ptr)  and I'm a bit reluctant to make such variable visible for Communication layer  - so, I'm thinking about extending  ConnectionFileDescriptor constructor in a way like this:
> 
> ConnectionFileDescriptor(int fd, bool owns_fd, bool inherit_handles = false);
> 
> In this case methods within ConnectionFileDescriptor::Connect (SocketListen, NamedSocketAccept, NamedSocketAccept, ConnectTCP, ConnectUDP) may use member field m_inherit_handles instead of taking additional argument.
> 
> http://reviews.llvm.org/D6204
> 
> 





More information about the lldb-commits mailing list