From inaky@linux.intel.com Tue Jul 31 20:34:52 2007 From: Inaky Perez-Gonzalez Date: Tue, 31 Jul 2007 20:34:01 -0700 Subject: [patch 05/18] usb: usb_set_configuration() obeys authorization To: greg@kroah.com Message-ID: <20070801033438.754661188@linux.intel.com>> Will refuse to configure a non-authorized device. Update: simplified if statement--thanks to Ragner Magalhaes for the heads up. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman --- drivers/usb/core/message.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c @@ -1469,6 +1469,9 @@ static struct usb_interface_assoc_descri * channels are available independently; and choosing between open * standard device protocols (like CDC) or proprietary ones. * + * Note that a non-authorized device (dev->authorized == 0) will only + * be put in unconfigured mode. + * * Note that USB has an additional level of device configurability, * associated with interfaces. That configurability is accessed using * usb_set_interface(). @@ -1490,7 +1493,7 @@ int usb_set_configuration(struct usb_dev struct usb_interface **new_interfaces = NULL; int n, nintf; - if (configuration == -1) + if (dev->authorized == 0 || configuration == -1) configuration = 0; else { for (i = 0; i < dev->descriptor.bNumConfigurations; i++) {