commit 5c2ae9c60021ace8b5a599671f51935edd18a2ae parent fb932cf8477120ee9fd9db37be1cd26a603fe0a3 Author: emersion <contact@emersion.fr> Date: Sun, 3 Jun 2018 09:20:22 +0100 Merge pull request #2097 from RyanDwyer/fix-workspace-segfault Fix potential crash when destroying workspace Diffstat:
| M | sway/tree/container.c | | | 10 | +++++++++- |
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/sway/tree/container.c b/sway/tree/container.c @@ -204,9 +204,17 @@ static struct sway_container *container_workspace_destroy( } } - free(workspace->sway_workspace); + struct sway_workspace *sway_workspace = workspace->sway_workspace; + + // This emits the destroy event and also destroys the swayc. _container_destroy(workspace); + // Clean up the floating container + sway_workspace->floating->parent = NULL; + _container_destroy(sway_workspace->floating); + + free(sway_workspace); + if (output) { output_damage_whole(output->sway_output); }