Messages in this thread |  | | | Date | Wed, 30 Dec 2009 18:14:58 +0100 | | From | Johan Hovold <> | | Subject | Re: [patch] USB: serial: fix DMA buffers on stack for io_edgeport.c |
| |
Hey Dan,
Looks like you forgot to free StringDesc:
> --- orig/drivers/usb/serial/io_edgeport.c 2009-12-30 16:20:35.000000000 +0200 > +++ devel/drivers/usb/serial/io_edgeport.c 2009-12-30 16:25:27.000000000 +0200 > @@ -372,21 +372,24 @@ static void update_edgeport_E2PROM(struc > ************************************************************************/ > static int get_string(struct usb_device *dev, int Id, char *string, int buflen) > { > - struct usb_string_descriptor StringDesc; > + struct usb_string_descriptor *StringDesc; > struct usb_string_descriptor *pStringDesc; > > dbg("%s - USB String ID = %d", __func__, Id); > > + StringDesc = kmalloc(sizeof(*StringDesc), GFP_KERNEL); > + if (!StringDesc) > + return 0; > if (!usb_get_descriptor(dev, USB_DT_STRING, Id, > - &StringDesc, sizeof(StringDesc))) > + StringDesc, sizeof(*StringDesc)))
here
> return 0; > > - pStringDesc = kmalloc(StringDesc.bLength, GFP_KERNEL); > + pStringDesc = kmalloc(StringDesc->bLength, GFP_KERNEL); > if (!pStringDesc)
here
> return 0; > > if (!usb_get_descriptor(dev, USB_DT_STRING, Id, > - pStringDesc, StringDesc.bLength)) { > + pStringDesc, StringDesc->bLength)) {
here
> kfree(pStringDesc); > return 0; > }
and here.
Thanks, Johan
|  |