summaryrefslogtreecommitdiff
path: root/src/protocols
diff options
context:
space:
mode:
authorRoss <79549577+ross96D@users.noreply.github.com>2025-08-23 06:45:00 -0400
committerGitHub <noreply@github.com>2025-08-23 11:45:00 +0100
commitd9cf1cb78ef3dfd82f03965aab70792bbe25c9e2 (patch)
tree305554776192a7e22580cefa2e4317d8929d48bc /src/protocols
parent0d45b277d6c750377b336034b8adc53eae238d91 (diff)
protocols/activation: send an invalid token when serial isn't valid (#11505)
Diffstat (limited to 'src/protocols')
-rw-r--r--src/protocols/XDGActivation.cpp7
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});