Re: [PATCH RESEND 4/4] Add usb interface authorization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Montag, den 08.06.2015, 07:40 -0700 schrieb Greg KH:
> On Mon, Jun 08, 2015 at 03:24:26PM +0200, Stefan Koch wrote:
> > Hi
> > 
> > This is a patch that introduces an interface authorization for USB devices.
> > 
> > The kernel supports already a device authorization bacause of wireless USB.
> > 
> > But the new interface authorization allows to enable or disable individual interfaces per bitmask instead allow or deny a whole device.
> > 
> > As example you can allow the interface for a TV signal from a USB TV card, but deny a HID for the remote control.
> > 
> > This was added against BadUSB attacks. Refer to: https://srlabs.de/badusb/
> > 
> > The interface authorization is used by an usb firewall named "usbauth".
> > The code and binaries for openSUSE 13.2 can be found here: https://build.opensuse.org/project/show/home:skoch_suse
> > 
> > The patch was tested with Linux 4.1-rc3. The functionality is oriented at existing kernel code like usb_set_configuration(), the device authorization, etc.
> > 
> > If the interface authorization is not used, the kernel behavior is the same as without the patch.
> > 
> > Best regards
> > 
> > Stefan Koch
> 
> Care to resend this in a format that it could be applied in (i.e. broken
> up into logical chunks with the proper Signed-off-by: lines)?
> 
> As this is, there's nothing we can do with it.
> 
> thanks,
> 
> greg k-h

Hi,

this is an bugfix for the XHCI driver. It is not needed for the
interface authorization. But there could be NULL pointers if a devices
initialization/registration is not finished.

Thanks

Stefan Koch

----------------------------------------------------------

>From 3abb84b10b181ae47c8ebbe68ac8178b548aba01 Mon Sep 17 00:00:00 2001
From: Stefan Koch <skoch@xxxxxxx>
Date: Tue, 9 Jun 2015 14:26:23 +0200
Subject: [PATCH 4/4] This patch fixes a bug in the xhci driver bit is not
 needed for the interface authorization.

There could be NULL pointers if the devices initialization/registration is not finished.

Signed-off-by: Stefan Koch <skoch@xxxxxxx>
---
 drivers/usb/host/xhci.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 36bf089..13c2933 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -2380,7 +2380,7 @@ void xhci_drop_ep_from_interval_table(struct xhci_hcd *xhci,
 	struct xhci_interval_bw	*interval_bw;
 	int normalized_interval;
 
-	if (xhci_is_async_ep(ep_bw->type))
+	if (!ep_bw || xhci_is_async_ep(ep_bw->type))
 		return;
 
 	if (udev->speed == USB_SPEED_SUPER) {
@@ -2444,7 +2444,7 @@ static void xhci_add_ep_to_interval_table(struct xhci_hcd *xhci,
 	struct xhci_virt_ep *smaller_ep;
 	int normalized_interval;
 
-	if (xhci_is_async_ep(ep_bw->type))
+	if (!ep_bw || xhci_is_async_ep(ep_bw->type))
 		return;
 
 	if (udev->speed == USB_SPEED_SUPER) {
-- 
2.1.4



--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux