Showing error 1643

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: drivers/net/irda/irda-usb.c
Line in file: 1665
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-10 07:54:05 UTC


Source:

1635        IRDA_MESSAGE("IRDA-USB found at address %d, Vendor: %x, Product: %x\n",
1636                     dev->devnum, le16_to_cpu(dev->descriptor.idVendor),
1637                     le16_to_cpu(dev->descriptor.idProduct));
1638
1639        net = alloc_irdadev(sizeof(*self));
1640        if (!net) 
1641                goto err_out;
1642
1643        SET_NETDEV_DEV(net, &intf->dev);
1644        self = net->priv;
1645        self->netdev = net;
1646        spin_lock_init(&self->lock);
1647        init_timer(&self->rx_defer_timer);
1648
1649        self->capability = id->driver_info;
1650        self->needspatch = ((self->capability & IUC_STIR421X) != 0);
1651
1652        /* Create all of the needed urbs */
1653        if (self->capability & IUC_STIR421X) {
1654                self->max_rx_urb = IU_SIGMATEL_MAX_RX_URBS;
1655                self->header_length = USB_IRDA_STIR421X_HEADER;
1656        } else {
1657                self->max_rx_urb = IU_MAX_RX_URBS;
1658                self->header_length = USB_IRDA_HEADER;
1659        }
1660
1661        self->rx_urb = kcalloc(self->max_rx_urb, sizeof(struct urb *),
1662                                GFP_KERNEL);
1663
1664        for (i = 0; i < self->max_rx_urb; i++) {
1665                self->rx_urb[i] = usb_alloc_urb(0, GFP_KERNEL);
1666                if (!self->rx_urb[i]) {
1667                        goto err_out_1;
1668                }
1669        }
1670        self->tx_urb = usb_alloc_urb(0, GFP_KERNEL);
1671        if (!self->tx_urb) {
1672                goto err_out_1;
1673        }
1674        self->speed_urb = usb_alloc_urb(0, GFP_KERNEL);
1675        if (!self->speed_urb) {
Show full sources