mirror of
https://github.com/swaywm/sway.git
synced 2024-09-21 13:11:26 +02:00
Fix a use-after-free error in switch binding
This commit is contained in:
parent
c1c2fe04bb
commit
2bece94b9b
@ -608,6 +608,7 @@ void seat_execute_command(struct sway_seat *seat, struct sway_binding *binding)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
memcpy(deferred, binding, sizeof(struct sway_binding));
|
memcpy(deferred, binding, sizeof(struct sway_binding));
|
||||||
|
deferred->command = strdup(binding->command);
|
||||||
list_add(seat->deferred_bindings, deferred);
|
list_add(seat->deferred_bindings, deferred);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#define _POSIX_C_SOURCE 200809L
|
|
||||||
#include "sway/config.h"
|
#include "sway/config.h"
|
||||||
#include "sway/desktop/transaction.h"
|
#include "sway/desktop/transaction.h"
|
||||||
#include "sway/input/switch.h"
|
#include "sway/input/switch.h"
|
||||||
@ -57,7 +56,7 @@ static void execute_binding(struct sway_switch *sway_switch) {
|
|||||||
calloc(1, sizeof(struct sway_binding));
|
calloc(1, sizeof(struct sway_binding));
|
||||||
dummy_binding->type = BINDING_SWITCH;
|
dummy_binding->type = BINDING_SWITCH;
|
||||||
dummy_binding->flags = matched_binding->flags;
|
dummy_binding->flags = matched_binding->flags;
|
||||||
dummy_binding->command = strdup(matched_binding->command);
|
dummy_binding->command = matched_binding->command;
|
||||||
|
|
||||||
seat_execute_command(seat, dummy_binding);
|
seat_execute_command(seat, dummy_binding);
|
||||||
free(dummy_binding);
|
free(dummy_binding);
|
||||||
|
Loading…
Reference in New Issue
Block a user