PERFORCE change 170307 for review

Hans Petter Selasky hselasky at FreeBSD.org
Sat Nov 7 01:25:03 UTC 2009


http://p4web.freebsd.org/chv.cgi?CH=170307

Change 170307 by hselasky at hselasky_laptop001 on 2009/11/07 01:24:09

	
	LibUSB v1.0 only:
	  - fix refcounting error during data transfer
	  - reported by Robert Jenssen

Affected files ...

.. //depot/projects/usb/src/lib/libusb/libusb10_io.c#9 edit

Differences ...

==== //depot/projects/usb/src/lib/libusb/libusb10_io.c#9 (text+ko) ====

@@ -148,19 +148,19 @@
 		goto do_done;
 	}
 	for (i = 0; i != nfds; i++) {
-		if (fds[i].revents == 0)
-			continue;
 		if (ppdev[i] != NULL) {
 			dev = libusb_get_device(ppdev[i]);
 
-			err = libusb20_dev_process(ppdev[i]);
+			if (fds[i].revents == 0)
+				err = 0;	/* nothing to do */
+			else
+				err = libusb20_dev_process(ppdev[i]);
+
 			if (err) {
 				/* cancel all transfers - device is gone */
 				libusb10_cancel_all_transfer(dev);
-				/*
-				 * make sure we don't go into an infinite
-				 * loop
-				 */
+
+				/* remove USB device from polling loop */
 				libusb10_remove_pollfd(dev->ctx, &dev->dev_poll);
 			}
 			CTX_UNLOCK(ctx);


More information about the p4-projects mailing list