> (gdb) print ctx->flying_transfers > $2 = {prev = 0xb660046c, next = 0xb660046c}
Means that our circular list is pointing to itself (empty), so it all looks like we got some list deletion between the initial list_empty() check [1], that failed (i.e. list was not empty then), and the time we call on to list_for_each_entry() (with a list that is now empty). Bit puzzling, as we should have a lock when we modify the flying_transfers list, and a deletion would have to occur outside of that lock... Regards, /Pete [1] https://github.com/libusbx/libusbx/blob/master/libusb/io.c#L1167 [2] https://github.com/libusbx/libusbx/blob/master/libusb/io.c#L1181 ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ libusbx-devel mailing list libusbx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libusbx-devel