diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-10-06 15:08:26 +0100 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-10-06 15:08:26 +0100 |
| commit | 4e41cda27ed4176005082436cb35878335e63fae (patch) | |
| tree | 0e6601cab4777902cf575cba512b299eb78364cb /src/protocols/SecurityContext.cpp | |
| parent | da86aac0f5c5c3604351961b901f62cdf7186a10 (diff) | |
security-context: close client fds after disconnect
Diffstat (limited to 'src/protocols/SecurityContext.cpp')
| -rw-r--r-- | src/protocols/SecurityContext.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/protocols/SecurityContext.cpp b/src/protocols/SecurityContext.cpp index b93ef448..b42c3a97 100644 --- a/src/protocols/SecurityContext.cpp +++ b/src/protocols/SecurityContext.cpp @@ -14,8 +14,8 @@ static int onCloseFdEvent(int fd, uint32_t mask, void* data) { return 0; } -SP<CSecurityContextSandboxedClient> CSecurityContextSandboxedClient::create(int clientFD) { - auto p = SP<CSecurityContextSandboxedClient>(new CSecurityContextSandboxedClient(clientFD)); +SP<CSecurityContextSandboxedClient> CSecurityContextSandboxedClient::create(int clientFD_) { + auto p = SP<CSecurityContextSandboxedClient>(new CSecurityContextSandboxedClient(clientFD_)); if (!p->client) return nullptr; return p; @@ -26,7 +26,7 @@ static void onSecurityContextClientDestroy(wl_listener* l, void* d) { client->onDestroy(); } -CSecurityContextSandboxedClient::CSecurityContextSandboxedClient(int clientFD) { +CSecurityContextSandboxedClient::CSecurityContextSandboxedClient(int clientFD_) : clientFD(clientFD_) { client = wl_client_create(g_pCompositor->m_sWLDisplay, clientFD); if (!client) return; @@ -37,6 +37,7 @@ CSecurityContextSandboxedClient::CSecurityContextSandboxedClient(int clientFD) { CSecurityContextSandboxedClient::~CSecurityContextSandboxedClient() { wl_list_remove(&destroyListener.link); + close(clientFD); } void CSecurityContextSandboxedClient::onDestroy() { |
