diff --git a/Xi/xibarriers.c b/Xi/xibarriers.c index 6761bcb49..dc9c23446 100644 --- a/Xi/xibarriers.c +++ b/Xi/xibarriers.c @@ -124,8 +124,10 @@ static void FreePointerBarrierClient(struct PointerBarrierClient *c) { struct PointerBarrierDevice *pbd = NULL, *tmp = NULL; - xorg_list_for_each_entry_safe(pbd, tmp, &c->per_device, entry) { - free(pbd); + if (!xorg_list_is_empty(&c->per_device)) { + xorg_list_for_each_entry_safe(pbd, tmp, &c->per_device, entry) { + free(pbd); + } } free(c); }