summaryrefslogtreecommitdiffstats
path: root/drivers/net/usb
diff options
context:
space:
mode:
authorJesper Juhl2011-01-23 13:19:55 +0100
committerDavid S. Miller2011-01-25 08:20:24 +0100
commit986e3f6e2b4582d9a7e61de5090042d5af85da44 (patch)
tree8f5f26ea8ae242c242b71d7a50c859852cee8cb5 /drivers/net/usb
parentpch_gbe: don't use flush_scheduled_work() (diff)
downloadkernel-qcow2-linux-986e3f6e2b4582d9a7e61de5090042d5af85da44.tar.gz
kernel-qcow2-linux-986e3f6e2b4582d9a7e61de5090042d5af85da44.tar.xz
kernel-qcow2-linux-986e3f6e2b4582d9a7e61de5090042d5af85da44.zip
USB NET KL5KUSB101: Fix mem leak in error path of kaweth_download_firmware()
We will leak the storage allocated by request_firmware() if the size of the firmware is greater than KAWETH_FIRMWARE_BUF_SIZE. This removes the leak by calling release_firmware() before we return -ENOSPC. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb')
-rw-r--r--drivers/net/usb/kaweth.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
index 5e98643a4a21..7dc84971f26f 100644
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -406,6 +406,7 @@ static int kaweth_download_firmware(struct kaweth_device *kaweth,
if (fw->size > KAWETH_FIRMWARE_BUF_SIZE) {
err("Firmware too big: %zu", fw->size);
+ release_firmware(fw);
return -ENOSPC;
}
data_len = fw->size;