From ed89f501e8664d92688ba4f6c96b781a43442d19 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Mon, 11 Sep 2023 11:17:36 +0900 Subject: [PATCH] Set close on exec To avoid inheriting fd to the child process, this patch sets close on exec flag to fd. Change-Id: I3ab2255e8cd80ad50ffbf355e51f0acec1030d68 Signed-off-by: Hwankyu Jhun --- src/server-socket-internal.cc | 7 +++++++ src/server-socket-internal.hh | 1 + 2 files changed, 8 insertions(+) diff --git a/src/server-socket-internal.cc b/src/server-socket-internal.cc index d117faa..46baa25 100644 --- a/src/server-socket-internal.cc +++ b/src/server-socket-internal.cc @@ -29,6 +29,7 @@ namespace rpc_port { namespace internal { ServerSocket::ServerSocket(int fd) : fd_(fd) { + SetCloseOnExec(); } ServerSocket::~ServerSocket() { @@ -67,6 +68,12 @@ int ServerSocket::Listen(int backlog) { return 0; } + +void ServerSocket::SetCloseOnExec() { + int flags = fcntl(fd_, F_GETFL, 0); + fcntl(fd_, F_SETFL, flags | O_CLOEXEC); + _I("Close on exec"); +} // LCOV_EXCL_STOP void ServerSocket::Close() { diff --git a/src/server-socket-internal.hh b/src/server-socket-internal.hh index 47ca970..43e392a 100644 --- a/src/server-socket-internal.hh +++ b/src/server-socket-internal.hh @@ -32,6 +32,7 @@ class ServerSocket { int GetFd() const; int Listen(int backlog); void Close(); + void SetCloseOnExec(); private: int fd_; -- 2.7.4