Our own reference may be the last one that's still alive if the context is
currently suspended (litest_suspend()). If we unref before removing it from
the path interface, we access already freed memory.

Signed-off-by: Peter Hutterer <[email protected]>
---
 test/litest.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/test/litest.c b/test/litest.c
index 4f26771f..d34bd3c5 100644
--- a/test/litest.c
+++ b/test/litest.c
@@ -1341,8 +1341,8 @@ litest_delete_device(struct litest_device *d)
        litest_assert_int_eq(d->skip_ev_syn, 0);
 
        if (d->libinput_device) {
-               libinput_device_unref(d->libinput_device);
                libinput_path_remove_device(d->libinput_device);
+               libinput_device_unref(d->libinput_device);
        }
        if (d->owns_context)
                libinput_unref(d->libinput);
-- 
2.13.6

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to