From ebe65a4d481341d38b99e8fb36e66832888bc085 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 1 Sep 2018 11:13:48 +1000 Subject: Fix crash on reload If sway is reloaded using a bindsym which has multiple commands, it failed to detect the reload command, didn't create a duplicate of the binding and would crash because the reload command frees the bindings. For example: mode system { bindsym r reload, mode default } In this example, the binding->command is "reload, mode default". Fixes #2545 --- sway/commands/bind.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sway') diff --git a/sway/commands/bind.c b/sway/commands/bind.c index 8270b958..e73b0aea 100644 --- a/sway/commands/bind.c +++ b/sway/commands/bind.c @@ -310,7 +310,7 @@ void seat_execute_command(struct sway_seat *seat, struct sway_binding *binding) bool reload = false; // if this is a reload command we need to make a duplicate of the // binding since it will be gone after the reload has completed. - if (strcasecmp(binding->command, "reload") == 0) { + if (strncasecmp(binding->command, "reload", 6) == 0) { reload = true; binding_copy = sway_binding_dup(binding); if (!binding_copy) { -- cgit v1.2.3