[lldb] Remove ConnectionFileDescriptor::child_process_inherit (#115861)
It's never set to true. Inheritable FDs are also dangerous as they can end up processes which know nothing about them. It's better to explicitly pass a specific FD to a specific subprocess, which we already mostly can do using the ProcessLaunchInfo FileActions.
This commit is contained in:
parent
a4f3a10c0e
commit
ae7b5af904
@ -31,7 +31,7 @@ public:
|
||||
typedef llvm::function_ref<void(llvm::StringRef local_socket_id)>
|
||||
socket_id_callback_type;
|
||||
|
||||
ConnectionFileDescriptor(bool child_processes_inherit = false);
|
||||
ConnectionFileDescriptor();
|
||||
|
||||
ConnectionFileDescriptor(int fd, bool owns_fd);
|
||||
|
||||
@ -65,9 +65,6 @@ public:
|
||||
|
||||
lldb::IOObjectSP GetReadObject() override { return m_io_sp; }
|
||||
|
||||
bool GetChildProcessesInherit() const;
|
||||
void SetChildProcessesInherit(bool child_processes_inherit);
|
||||
|
||||
protected:
|
||||
void OpenCommandPipe();
|
||||
|
||||
@ -135,7 +132,6 @@ protected:
|
||||
std::atomic<bool> m_shutting_down; // This marks that we are shutting down so
|
||||
// if we get woken up from
|
||||
// BytesAvailable to disconnect, we won't try to read again.
|
||||
bool m_child_processes_inherit;
|
||||
|
||||
std::string m_uri;
|
||||
|
||||
|
@ -52,18 +52,15 @@
|
||||
using namespace lldb;
|
||||
using namespace lldb_private;
|
||||
|
||||
ConnectionFileDescriptor::ConnectionFileDescriptor(bool child_processes_inherit)
|
||||
: Connection(), m_pipe(), m_mutex(), m_shutting_down(false),
|
||||
|
||||
m_child_processes_inherit(child_processes_inherit) {
|
||||
ConnectionFileDescriptor::ConnectionFileDescriptor()
|
||||
: Connection(), m_pipe(), m_mutex(), m_shutting_down(false) {
|
||||
Log *log(GetLog(LLDBLog::Connection | LLDBLog::Object));
|
||||
LLDB_LOGF(log, "%p ConnectionFileDescriptor::ConnectionFileDescriptor ()",
|
||||
static_cast<void *>(this));
|
||||
}
|
||||
|
||||
ConnectionFileDescriptor::ConnectionFileDescriptor(int fd, bool owns_fd)
|
||||
: Connection(), m_pipe(), m_mutex(), m_shutting_down(false),
|
||||
m_child_processes_inherit(false) {
|
||||
: Connection(), m_pipe(), m_mutex(), m_shutting_down(false) {
|
||||
m_io_sp =
|
||||
std::make_shared<NativeFile>(fd, File::eOpenOptionReadWrite, owns_fd);
|
||||
|
||||
@ -76,8 +73,7 @@ ConnectionFileDescriptor::ConnectionFileDescriptor(int fd, bool owns_fd)
|
||||
}
|
||||
|
||||
ConnectionFileDescriptor::ConnectionFileDescriptor(Socket *socket)
|
||||
: Connection(), m_pipe(), m_mutex(), m_shutting_down(false),
|
||||
m_child_processes_inherit(false) {
|
||||
: Connection(), m_pipe(), m_mutex(), m_shutting_down(false) {
|
||||
InitializeSocket(socket);
|
||||
}
|
||||
|
||||
@ -94,7 +90,7 @@ void ConnectionFileDescriptor::OpenCommandPipe() {
|
||||
|
||||
Log *log = GetLog(LLDBLog::Connection);
|
||||
// Make the command file descriptor here:
|
||||
Status result = m_pipe.CreateNew(m_child_processes_inherit);
|
||||
Status result = m_pipe.CreateNew(/*child_processes_inherit=*/false);
|
||||
if (!result.Success()) {
|
||||
LLDB_LOGF(log,
|
||||
"%p ConnectionFileDescriptor::OpenCommandPipe () - could not "
|
||||
@ -539,7 +535,7 @@ lldb::ConnectionStatus ConnectionFileDescriptor::AcceptSocket(
|
||||
Status *error_ptr) {
|
||||
Status error;
|
||||
std::unique_ptr<Socket> listening_socket =
|
||||
Socket::Create(socket_protocol, m_child_processes_inherit, error);
|
||||
Socket::Create(socket_protocol, /*child_processes_inherit=*/false, error);
|
||||
Socket *accepted_socket;
|
||||
|
||||
if (!error.Fail())
|
||||
@ -567,7 +563,7 @@ ConnectionFileDescriptor::ConnectSocket(Socket::SocketProtocol socket_protocol,
|
||||
Status *error_ptr) {
|
||||
Status error;
|
||||
std::unique_ptr<Socket> socket =
|
||||
Socket::Create(socket_protocol, m_child_processes_inherit, error);
|
||||
Socket::Create(socket_protocol, /*child_processes_inherit=*/false, error);
|
||||
|
||||
if (!error.Fail())
|
||||
error = socket->Connect(socket_name);
|
||||
@ -649,7 +645,7 @@ ConnectionFileDescriptor::ConnectUDP(llvm::StringRef s,
|
||||
if (error_ptr)
|
||||
*error_ptr = Status();
|
||||
llvm::Expected<std::unique_ptr<UDPSocket>> socket =
|
||||
Socket::UdpConnect(s, m_child_processes_inherit);
|
||||
Socket::UdpConnect(s, /*child_processes_inherit=*/false);
|
||||
if (!socket) {
|
||||
if (error_ptr)
|
||||
*error_ptr = Status::FromError(socket.takeError());
|
||||
@ -798,15 +794,6 @@ ConnectionStatus ConnectionFileDescriptor::ConnectSerialPort(
|
||||
llvm_unreachable("this function should be only called w/ LLDB_ENABLE_POSIX");
|
||||
}
|
||||
|
||||
bool ConnectionFileDescriptor::GetChildProcessesInherit() const {
|
||||
return m_child_processes_inherit;
|
||||
}
|
||||
|
||||
void ConnectionFileDescriptor::SetChildProcessesInherit(
|
||||
bool child_processes_inherit) {
|
||||
m_child_processes_inherit = child_processes_inherit;
|
||||
}
|
||||
|
||||
void ConnectionFileDescriptor::InitializeSocket(Socket *socket) {
|
||||
m_io_sp.reset(socket);
|
||||
m_uri = socket->GetRemoteConnectionURI();
|
||||
|
Loading…
x
Reference in New Issue
Block a user