Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6:
USB: Fix unload oops and memory leak in yealink driver
usbserial: Reference leak

+9 -7
+6 -6
drivers/usb/input/yealink.c
··· 810 810 if (yld == NULL) 811 811 return err; 812 812 813 - if (yld->urb_irq) { 814 - usb_kill_urb(yld->urb_irq); 815 - usb_free_urb(yld->urb_irq); 816 - } 817 - if (yld->urb_ctl) 818 - usb_free_urb(yld->urb_ctl); 813 + usb_kill_urb(yld->urb_irq); /* parameter validation in core/urb */ 814 + usb_kill_urb(yld->urb_ctl); /* parameter validation in core/urb */ 815 + 819 816 if (yld->idev) { 820 817 if (err) 821 818 input_free_device(yld->idev); ··· 828 831 if (yld->irq_data) 829 832 usb_buffer_free(yld->udev, USB_PKT_LEN, 830 833 yld->irq_data, yld->irq_dma); 834 + 835 + usb_free_urb(yld->urb_irq); /* parameter validation in core/urb */ 836 + usb_free_urb(yld->urb_ctl); /* parameter validation in core/urb */ 831 837 kfree(yld); 832 838 return err; 833 839 }
+3 -1
drivers/usb/serial/usb-serial.c
··· 464 464 length += sprintf (page+length, " path:%s", tmp); 465 465 466 466 length += sprintf (page+length, "\n"); 467 - if ((length + begin) > (off + count)) 467 + if ((length + begin) > (off + count)) { 468 + usb_serial_put(serial); 468 469 goto done; 470 + } 469 471 if ((length + begin) < off) { 470 472 begin += length; 471 473 length = 0;