sway/sway
Alexander Orzechowski 88c17ece3b warp_to_constraint_cursor_hint: Handle NULL view
This might be the wrong fix, but the crash is happening because the ->data
field on an xwayland surface is NULL. A NULL data field is normal for
unmanaged surfaces, however it seems clients can do weird things: They can
create a cursor lock on a regular xwayland surface then make it unmanaged
by calling override_redirect. In this case, the xwayland server should
destroy the cursor lock, which is does, but does so in the wrong order
making it try to dereference a NULL pointer after sway has acknowledged
its new unmanaged status.

```
(gdb) bt full
0  0x000055fd91934861 in warp_to_constraint_cursor_hint (cursor=0x55fd93486c00)
    at ../sway/input/cursor.c:1243
        sy = 605
        lx = 6.9527431433545762e-310
        sx = 1272
        view = 0x0
        con = 0x7ffd1cdfe400
        ly = -6.949595189996421e+59
        constraint = 0x55fd93e7faa0
1  0x000055fd91934976 in handle_constraint_destroy (listener=0x55fd93f0fd58, data=0x55fd93e7faa0)
    at ../sway/input/cursor.c:1266
        sway_constraint = 0x55fd93f0fd30
        constraint = 0x55fd93e7faa0
        cursor = 0x55fd93486c00
2  0x00007fda8275bf6e in wl_signal_emit_mutable () at /usr/lib/libwayland-server.so.0
3  0x00007fda82e57016 in pointer_constraint_destroy (constraint=0x55fd93e7faa0)
    at ../subprojects/wlroots/types/wlr_pointer_constraints_v1.c:49
4  0x00007fda82e570dc in pointer_constraint_destroy_resource (resource=0x55fd933cf8f0)
    at ../subprojects/wlroots/types/wlr_pointer_constraints_v1.c:66
        constraint = 0x55fd93e7faa0
5  0x00007fda8275d8ba in  () at /usr/lib/libwayland-server.so.0
6  0x00007fda8275f6a9 in wl_resource_destroy () at /usr/lib/libwayland-server.so.0
7  0x00007fda82e56fb3 in resource_destroy (client=0x55fd93ea52e0, resource=0x55fd933cf8f0)
    at ../subprojects/wlroots/types/wlr_pointer_constraints_v1.c:39
8  0x00007fda81d8f4f6 in  () at /usr/lib/libffi.so.8
9  0x00007fda81d8bf5e in  () at /usr/lib/libffi.so.8
10 0x00007fda81d8eb73 in ffi_call () at /usr/lib/libffi.so.8
11 0x00007fda8275aada in  () at /usr/lib/libwayland-server.so.0
12 0x00007fda8275f01c in  () at /usr/lib/libwayland-server.so.0
13 0x00007fda8275d9e2 in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0
14 0x00007fda8275e197 in wl_display_run () at /usr/lib/libwayland-server.so.0
15 0x000055fd919264d3 in server_run (server=0x55fd919a3a80 <server>) at ../sway/server.c:320
16 0x000055fd91925457 in main (argc=1, argv=0x7ffd1cdfed98) at ../sway/main.c:411
        verbose = false
        debug = false
        validate = false
        allow_unsupported_gpu = false
        config_path = 0x0
        c = -1
```
2023-01-04 10:37:36 +01:00
..
commands Add missing includes & remove duplicates 2023-01-03 21:50:56 +01:00
config Replace math functions that promote float to double 2023-01-03 21:50:56 +01:00
desktop Replace math functions that promote float to double 2023-01-03 21:50:56 +01:00
input warp_to_constraint_cursor_hint: Handle NULL view 2023-01-04 10:37:36 +01:00
tree tree/container: drop unnecessary check in container_get_siblings() 2023-01-03 11:01:02 -07:00
commands.c Make cmd_handler.command const 2023-01-03 21:50:56 +01:00
config.c Add `primary_selection` config option 2022-12-05 14:09:29 +01:00
criteria.c criteria: be lenient on window_role and instance too 2022-12-08 21:20:45 +01:00
decoration.c Fix double free when unmapping any view 2018-11-15 15:22:09 +10:00
ipc-json.c Make libinput backend optional 2022-11-28 13:28:15 -05:00
ipc-server.c Remove redundant return statements 2023-01-03 21:50:56 +01:00
lock.c sway/lock: handle mode in output commit handler 2022-12-01 23:27:22 +01:00
main.c fix: remove redundant empty statement in main.c 2022-07-12 16:07:51 +02:00
meson.build Add libinput RotationAngle 2022-12-09 11:28:53 +01:00
realtime.c realtime: request SCHED_RR using CAP_SYS_NICE 2022-05-18 11:20:17 +02:00
server.c Add `primary_selection` config option 2022-12-05 14:09:29 +01:00
sway-bar.5.scd man: update Pango font description URL 2021-08-04 02:15:04 +02:00
sway-input.5.scd Add libinput RotationAngle 2022-12-09 11:28:53 +01:00
sway-ipc.7.scd Support libinput's 1.21 new dwtp option 2022-10-30 10:56:34 +01:00
sway-output.5.scd man: fix typo in output disable docs 2023-01-03 10:59:02 -07:00
sway.1.scd man: update maintainer 2021-01-08 09:33:51 +01:00
sway.5.scd Add `primary_selection` config option 2022-12-05 14:09:29 +01:00
swaynag.c Bump RLIMIT_NOFILE 2021-10-30 08:19:35 -06:00
xdg_activation_v1.c launcher: export xdga tokens and use them for workspace matching 2022-11-26 09:48:58 +01:00
xdg_decoration.c Fix compile after wlroots commit c3e54021f8bbf3ec1c1e5906459be0ae85f5fb8c 2021-10-07 21:29:37 +03:00