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 <ajax@redhat.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
11f4cc47a8
commit
533fb62739
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue