summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-05-04 12:35:56 +0100
committerVaxry <vaxry@vaxry.net>2024-05-04 12:36:02 +0100
commit25964e5a2b633aed191915efa0de0489bf94dbb9 (patch)
tree8447bf1f5c2c2c2dcd57a35378f7d4749a94636d /src
parent2d40046f24c051767dc541bef3ffb8366901d898 (diff)
hid: don't access expired resources in virtual devices
fixes #5868
Diffstat (limited to 'src')
-rw-r--r--src/devices/VirtualKeyboard.cpp4
-rw-r--r--src/devices/VirtualPointer.cpp2
2 files changed, 6 insertions, 0 deletions
diff --git a/src/devices/VirtualKeyboard.cpp b/src/devices/VirtualKeyboard.cpp
index ca6156b7..fa91ae9f 100644
--- a/src/devices/VirtualKeyboard.cpp
+++ b/src/devices/VirtualKeyboard.cpp
@@ -55,6 +55,8 @@ bool CVirtualKeyboard::isVirtual() {
}
wlr_keyboard* CVirtualKeyboard::wlr() {
+ if (keyboard.expired())
+ return nullptr;
return keyboard.lock()->wlr();
}
@@ -67,5 +69,7 @@ void CVirtualKeyboard::disconnectCallbacks() {
}
wl_client* CVirtualKeyboard::getClient() {
+ if (keyboard.expired())
+ return nullptr;
return keyboard.lock()->client();
}
diff --git a/src/devices/VirtualPointer.cpp b/src/devices/VirtualPointer.cpp
index 8f8699a2..2b46ff28 100644
--- a/src/devices/VirtualPointer.cpp
+++ b/src/devices/VirtualPointer.cpp
@@ -166,5 +166,7 @@ void CVirtualPointer::disconnectCallbacks() {
}
wlr_pointer* CVirtualPointer::wlr() {
+ if (pointer.expired())
+ return nullptr;
return pointer.lock()->wlr();
}