diff options
Diffstat (limited to 'usbredirhost/usbredirhost.c')
-rw-r--r-- | usbredirhost/usbredirhost.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/usbredirhost/usbredirhost.c b/usbredirhost/usbredirhost.c index 86e1a92..47ee5e4 100644 --- a/usbredirhost/usbredirhost.c +++ b/usbredirhost/usbredirhost.c @@ -1912,7 +1912,9 @@ static void usbredirhost_cancel_data_packet(void *priv, uint64_t id) LOCK(host); for (t = host->transfers_head.next; t; t = t->next) { - if (t->id == id) { + /* After cancellation the guest may re-use the id, so skip already + cancelled packets */ + if (!t->cancelled && t->id == id) { break; } } |