diff options
| author | Ross <79549577+ross96D@users.noreply.github.com> | 2025-08-23 06:45:00 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-23 11:45:00 +0100 |
| commit | d9cf1cb78ef3dfd82f03965aab70792bbe25c9e2 (patch) | |
| tree | 305554776192a7e22580cefa2e4317d8929d48bc /src/protocols | |
| parent | 0d45b277d6c750377b336034b8adc53eae238d91 (diff) | |
protocols/activation: send an invalid token when serial isn't valid (#11505)
Diffstat (limited to 'src/protocols')
| -rw-r--r-- | src/protocols/XDGActivation.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/protocols/XDGActivation.cpp b/src/protocols/XDGActivation.cpp index f25ffca8..165bcd7e 100644 --- a/src/protocols/XDGActivation.cpp +++ b/src/protocols/XDGActivation.cpp @@ -1,6 +1,7 @@ #include "XDGActivation.hpp" #include "../managers/TokenManager.hpp" #include "../Compositor.hpp" +#include "../managers/SeatManager.hpp" #include "core/Compositor.hpp" #include <algorithm> @@ -23,6 +24,12 @@ CXDGActivationToken::CXDGActivationToken(SP<CXdgActivationTokenV1> resource_) : return; } + if (!g_pSeatManager->serialValid(g_pSeatManager->seatResourceForClient(m_resource->client()), m_serial)) { + LOGM(LOG, "serial not found, sending invalid token"); + m_resource->sendDone("__invalid__"); + return; + } + m_committed = true; // send done with a new token m_token = g_pTokenManager->registerNewToken({}, std::chrono::months{12}); |
