summaryrefslogtreecommitdiff
path: root/src/managers/EventManager.cpp
diff options
context:
space:
mode:
authorMykola Perehudov <nexec@users.noreply.github.com>2023-07-06 12:39:02 +0300
committerGitHub <noreply@github.com>2023-07-06 11:39:02 +0200
commit0c974b72365ffaa69d52ee39944f61709b9e1a81 (patch)
treea277990f723417afbe6d1472c34447426969fb50 /src/managers/EventManager.cpp
parent8407a9af0a333ade66d4deff7ef654a4594fe58f (diff)
Avoid passing control unix socket descriptors to children (#2656)
Add SOCK_CLOEXEC flags to server side connection FDs to make them closed during execve(2).
Diffstat (limited to 'src/managers/EventManager.cpp')
-rw-r--r--src/managers/EventManager.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/managers/EventManager.cpp b/src/managers/EventManager.cpp
index 9d55f423..51532454 100644
--- a/src/managers/EventManager.cpp
+++ b/src/managers/EventManager.cpp
@@ -60,7 +60,7 @@ int fdHandleWrite(int fd, uint32_t mask, void* data) {
void CEventManager::startThread() {
m_tThread = std::thread([&]() {
- const auto SOCKET = socket(AF_UNIX, SOCK_STREAM, 0);
+ const auto SOCKET = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (SOCKET < 0) {
Debug::log(ERR, "Couldn't start the Hyprland Socket 2. (1) IPC will not work.");
@@ -82,7 +82,7 @@ void CEventManager::startThread() {
Debug::log(LOG, "Hypr socket 2 started at %s", socketPath.c_str());
while (1) {
- const auto ACCEPTEDCONNECTION = accept(SOCKET, (sockaddr*)&clientAddress, &clientSize);
+ const auto ACCEPTEDCONNECTION = accept4(SOCKET, (sockaddr*)&clientAddress, &clientSize, SOCK_CLOEXEC);
if (ACCEPTEDCONNECTION > 0) {
// new connection!