sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 2c2625acd3a89ef2c4caa4094a3a51001041a524
parent 08a06a7b6bbb324e9fc6e49e96379340404135b4
Author: Daniel De Graaf <code@danieldg.net>
Date:   Sun, 21 Jan 2024 09:08:52 -0500

Fix SIGSEGV on output destroy

```
Program terminated with signal SIGSEGV, Segmentation fault.
144                             struct wlr_layer_surface_v1 *layer_surface = surface->layer_surface;
[Current thread is 1 (Thread 0x7f1f7c5b3ac0 (LWP 2473))]
(gdb) bt
```

Add a NULL check in `find_mapped_layer_by_client` like the one in `arrange_surface`.

Diffstat:
Msway/desktop/layer_shell.c | 3+++
1 file changed, 3 insertions(+), 0 deletions(-)

diff --git a/sway/desktop/layer_shell.c b/sway/desktop/layer_shell.c @@ -140,6 +140,9 @@ static struct sway_layer_surface *find_mapped_layer_by_client( wl_list_for_each (node, &output->layers.shell_overlay->children, link) { struct sway_layer_surface *surface = scene_descriptor_try_get(node, SWAY_SCENE_DESC_LAYER_SHELL); + if (!surface) { + continue; + } struct wlr_layer_surface_v1 *layer_surface = surface->layer_surface; struct wl_resource *resource = layer_surface->resource;