ChangeSet 1.1094.6.12, 2003/03/14 12:05:46-08:00, [EMAIL PROTECTED]
[PATCH] USB: memleak in Edgeport USB Serial Converter driver
drivers/usb/serial/io_ti.c | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff -Nru a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c
--- a/drivers/usb/serial/io_ti.c Mon Mar 17 11:46:08 2003
+++ b/drivers/usb/serial/io_ti.c Mon Mar 17 11:46:08 2003
@@ -468,7 +468,7 @@
{
int status;
struct out_endpoint_desc_block *oedb;
- __u8 lsr;
+ __u8 *lsr;
int bytes_left = 0;
oedb = kmalloc (sizeof (* oedb), GFP_KERNEL);
@@ -477,6 +477,13 @@
return -ENOMEM;
}
+ lsr = kmalloc (1, GFP_KERNEL); /* Sigh, that's right, just one byte,
+ as not all platforms can do DMA
+ from stack */
+ if (!lsr) {
+ kfree(oedb);
+ return -ENOMEM;
+ }
/* Read the DMA Count Registers */
status = TIReadRam (port->port->serial->dev,
port->dma_address,
@@ -492,7 +499,7 @@
status = TIReadRam (port->port->serial->dev,
port->uart_base + UMPMEM_OFFS_UART_LSR,
1,
- &lsr);
+ lsr);
if (status)
goto exit_is_tx_active;
@@ -508,6 +515,9 @@
/* We return Not Active if we get any kind of error */
exit_is_tx_active:
dbg ("%s - return %d", __FUNCTION__, bytes_left );
+
+ kfree(lsr);
+ kfree(oedb);
return bytes_left;
}
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel