[Spice-devel] [PATCH] usbredirparser: prevent endless recursion if interface_count == 0
Alon Levy
alon at pobox.com
Tue Jul 26 10:47:16 UTC 2016
On fedora 24 this function is tail optimized, resulting in a busy wait.
This happens to me with virt-manager running a win7 vm
usbredir-0.7.1-2.fc24.x86_64
---
Hi Guys!
One liner to fix an issue I had with virt-manager - symptom is 100% cpu
taken in it, stack traced to the problem fixed by this patch.
Alon
usbredirparser/usbredirfilter.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/usbredirparser/usbredirfilter.c
b/usbredirparser/usbredirfilter.c
index 02184ef..bdfbfc2 100644
--- a/usbredirparser/usbredirfilter.c
+++ b/usbredirparser/usbredirfilter.c
@@ -205,7 +205,7 @@ int usbredirfilter_check(
* by recursively calling this function with a flag that forbids
* skipping (usbredirfilter_fl_dont_skip_non_boot_hid)
*/
- if (num_skipped == interface_count) {
+ if (interface_count > 0 && num_skipped == interface_count) {
rc = usbredirfilter_check(rules, rules_count,
device_class, device_subclass,
device_protocol,
interface_class, interface_subclass,
--
2.7.4
More information about the Spice-devel
mailing list