From 533fb627398e20f863234d780f4463e37007515b Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 4 Aug 2015 13:17:02 -0400 Subject: [PATCH] xwayland: Don't (double) destroy input resources in CloseScreen By the time we get here we've already done CloseDownDevices, so on the second regeneration you get: Invalid read of size 4 at 0x43402A: RemoveDevice (devices.c:1125) by 0x427902: xwl_seat_destroy (xwayland-input.c:568) by 0x42649C: xwl_close_screen (xwayland.c:116) by 0x4B7F67: CursorCloseScreen (cursor.c:187) by 0x536003: AnimCurCloseScreen (animcur.c:106) by 0x539831: present_close_screen (present_screen.c:64) by 0x43E486: dix_main (main.c:351) by 0x30D70206FF: (below main) (libc-start.c:289) Address 0x980e1a0 is 64 bytes inside a block of size 904 at 0x4A07D6A: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x434158: RemoveDevice (devices.c:1157) by 0x42F77B: CloseDeviceList (devices.c:1017) by 0x430246: CloseDownDevices (devices.c:1047) by 0x43E3EB: dix_main (main.c:333) by 0x30D70206FF: (below main) (libc-start.c:289) Signed-off-by: Adam Jackson Reviewed-by: Daniel Stone Signed-off-by: Keith Packard --- hw/xwayland/xwayland-input.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c index a6fbab5bb..a961e3010 100644 --- a/hw/xwayland/xwayland-input.c +++ b/hw/xwayland/xwayland-input.c @@ -559,8 +559,6 @@ create_input_device(struct xwl_screen *xwl_screen, uint32_t id) void xwl_seat_destroy(struct xwl_seat *xwl_seat) { - RemoveDevice(xwl_seat->pointer, FALSE); - RemoveDevice(xwl_seat->keyboard, FALSE); wl_seat_destroy(xwl_seat->seat); wl_surface_destroy(xwl_seat->cursor); if (xwl_seat->cursor_frame_cb)