Merge pull request #2370 from RyanDwyer/transactions-use-after-free

Fix use after free in transactions
This commit is contained in:
Brian Ashworth 2018-07-28 01:31:43 -04:00 committed by GitHub
commit 92a4bc646a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -364,7 +364,13 @@ static void set_instructions_ready(struct sway_view *view, int index) {
struct sway_transaction_instruction *instruction =
view->swayc->instructions->items[i];
if (!instruction->ready) {
// set_instruction_ready can remove instructions from the list we're
// iterating
size_t length = view->swayc->instructions->length;
set_instruction_ready(instruction);
size_t num_removed = length - view->swayc->instructions->length;
i -= num_removed;
index -= num_removed;
}
}
}