wayland: Fix security context failing to create a client

wl_client_create() can fail.
wilder/Plasma/6.2
Vlad Zahorodnii 2 years ago
parent 982a2e3a37
commit de15b87ea7
  1. 8
      src/wayland/display.cpp

@ -270,12 +270,18 @@ SecurityContext::~SecurityContext()
void SecurityContext::onListenFdActivated(QSocketDescriptor socketDescriptor) void SecurityContext::onListenFdActivated(QSocketDescriptor socketDescriptor)
{ {
int clientFd = accept4(socketDescriptor, nullptr, nullptr, SOCK_CLOEXEC); const int clientFd = accept4(socketDescriptor, nullptr, nullptr, SOCK_CLOEXEC);
if (clientFd < 0) { if (clientFd < 0) {
qCWarning(KWIN_CORE) << "Failed to accept client from security listen FD"; qCWarning(KWIN_CORE) << "Failed to accept client from security listen FD";
return; return;
} }
auto client = m_display->createClient(clientFd); auto client = m_display->createClient(clientFd);
if (!client) {
close(clientFd);
return;
}
client->setSecurityContextAppId(m_appId); client->setSecurityContextAppId(m_appId);
} }

Loading…
Cancel
Save