diff options
author | Chris Dickens <christopher.a.dickens@gmail.com> | 2020-10-15 21:40:19 -0700 |
---|---|---|
committer | Chris Dickens <christopher.a.dickens@gmail.com> | 2020-10-15 21:40:19 -0700 |
commit | c33990a300674e24f47ff0f172f7efb10b63b88a (patch) | |
tree | f6b8b32fddf8ce88a96a7846845fdedd8acd5e61 /libusb/io.c | |
parent | c71c991003f592d3b6357fe58d0103e99371fbbb (diff) | |
download | libusb-c33990a300674e24f47ff0f172f7efb10b63b88a.tar.gz |
core: Iterate over completed transfers using the correct list node
Commit 006ca0fbaa ("Guard against getting stuck while handling events")
caused a regression using the wrong list node when iterating a list. Fix
this by introducing and using an alternate for_each iterator.
Closes #796
Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
Diffstat (limited to 'libusb/io.c')
-rw-r--r-- | libusb/io.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libusb/io.c b/libusb/io.c index bf6876e..0e960dd 100644 --- a/libusb/io.c +++ b/libusb/io.c @@ -2112,7 +2112,7 @@ static int handle_event_trigger(struct libusb_context *ctx) list_cut(&completed_transfers, &ctx->completed_transfers); usbi_mutex_unlock(&ctx->event_data_lock); - __for_each_transfer_safe(&completed_transfers, itransfer, tmp) { + __for_each_completed_transfer_safe(&completed_transfers, itransfer, tmp) { list_del(&itransfer->completed_list); r = usbi_backend.handle_transfer_completion(itransfer); if (r) { |