Showing error 784

User: Jiri Slaby
Error type: Memory Leak
Error type description: There the code omits to free some allocated memory
File location: drivers/usb/misc/usblcd.c
Line in file: 301
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:26:27 UTC


Source:

271
272static const struct file_operations lcd_fops = {
273        .owner =        THIS_MODULE,
274        .read =         lcd_read,
275        .write =        lcd_write,
276        .open =         lcd_open,
277        .unlocked_ioctl = lcd_ioctl,
278        .release =      lcd_release,
279};
280
281/*
282 * usb class driver info in order to get a minor number from the usb core,
283 * and to have the device registered with the driver core
284 */
285static struct usb_class_driver lcd_class = {
286        .name =         "lcd%d",
287        .fops =         &lcd_fops,
288        .minor_base =   USBLCD_MINOR,
289};
290
291static int lcd_probe(struct usb_interface *interface, const struct usb_device_id *id)
292{
293        struct usb_lcd *dev = NULL;
294        struct usb_host_interface *iface_desc;
295        struct usb_endpoint_descriptor *endpoint;
296        size_t buffer_size;
297        int i;
298        int retval = -ENOMEM;
299
300        /* allocate memory for our device state and initialize it */
301        dev = kzalloc(sizeof(*dev), GFP_KERNEL);
302        if (dev == NULL) {
303                err("Out of memory");
304                goto error;
305        }
306        kref_init(&dev->kref);
307        sema_init(&dev->limit_sem, USB_LCD_CONCURRENT_WRITES);
308        init_usb_anchor(&dev->submitted);
309
310        dev->udev = usb_get_dev(interface_to_usbdev(interface));
311        dev->interface = interface;
Show full sources