sway

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

commit 3c93e2cf1bf56f4bdbe128eebf1fb250ab136ed2
parent f8d0e1f94635e6334d2d646797dfd43c219e213a
Author: Calvin Lee <cyrus296@gmail.com>
Date:   Sun,  6 Aug 2017 12:04:16 +0200

Prevent race condition in the kill command

When killing views with `close_views` a use-after-free can sometimes
occur because parent views are killed before their children. This commit
makes `container_map` run functions on child containers before their
parent, fixing the race.

Fixes #1302

Diffstat:
Msway/container.c | 2+-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sway/container.c b/sway/container.c @@ -849,7 +849,6 @@ int swayc_gap(swayc_t *container) { void container_map(swayc_t *container, void (*f)(swayc_t *view, void *data), void *data) { if (container) { - f(container, data); int i; if (container->children) { for (i = 0; i < container->children->length; ++i) { @@ -863,6 +862,7 @@ void container_map(swayc_t *container, void (*f)(swayc_t *view, void *data), voi container_map(child, f, data); } } + f(container, data); } }