]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/isdn/hardware/mISDN/hfcsusb.c
isdn: mISDN: hfcsusb: Fix possible null-pointer dereferences in start_isoc_chain()
[linux.git] / drivers / isdn / hardware / mISDN / hfcsusb.c
index 4c99739b937eef987949847c4cb4676bdbb85950..8fb7c5dea07fc1c648293e0966cac508eb421b6e 100644 (file)
@@ -1394,6 +1394,7 @@ start_isoc_chain(struct usb_fifo *fifo, int num_packets_per_urb,
                                printk(KERN_DEBUG
                                       "%s: %s: alloc urb for fifo %i failed",
                                       hw->name, __func__, fifo->fifonum);
+                               continue;
                        }
                        fifo->iso[i].owner_fifo = (struct usb_fifo *) fifo;
                        fifo->iso[i].indx = i;
@@ -1955,6 +1956,9 @@ hfcsusb_probe(struct usb_interface *intf, const struct usb_device_id *id)
 
                                /* get endpoint base */
                                idx = ((ep_addr & 0x7f) - 1) * 2;
+                               if (idx > 15)
+                                       return -EIO;
+
                                if (ep_addr & 0x80)
                                        idx++;
                                attr = ep->desc.bmAttributes;