summaryrefslogtreecommitdiff
path: root/src/login/logind-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/login/logind-device.c')
-rw-r--r--src/login/logind-device.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/login/logind-device.c b/src/login/logind-device.c
index 2bcd6a10c5..95c2307baf 100644
--- a/src/login/logind-device.c
+++ b/src/login/logind-device.c
@@ -67,11 +67,15 @@ void device_free(Device *d) {
void device_detach(Device *d) {
Seat *s;
+ SessionDevice *sd;
assert(d);
if (!d->seat)
return;
+ while ((sd = d->session_devices))
+ session_device_free(sd);
+
s = d->seat;
LIST_REMOVE(Device, devices, d->seat->devices, d);
d->seat = NULL;