Fix use after free in transaction code
If we set an instruction as ready twice, it decreases the transaction's num_waiting a second time and applies the transaction earlier than it should. This no doubt has undesired effects, probably resulting in a use after free. Hopefully fixes the first part of #2207.
This commit is contained in:
parent
f414885b1d
commit
50b401677b
|
@ -377,8 +377,10 @@ static void set_instructions_ready(struct sway_view *view, int index) {
|
|||
for (int i = 0; i <= index; ++i) {
|
||||
struct sway_transaction_instruction *instruction =
|
||||
view->swayc->instructions->items[i];
|
||||
if (!instruction->ready) {
|
||||
set_instruction_ready(instruction);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void transaction_notify_view_ready(struct sway_view *view, uint32_t serial) {
|
||||
|
|
Loading…
Reference in a new issue