summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesper Juhl <jj@chaosbits.net>2011-01-23 12:19:55 +0000
committerDavid S. Miller <davem@davemloft.net>2011-01-24 23:20:24 -0800
commit986e3f6e2b4582d9a7e61de5090042d5af85da44 (patch)
tree8f5f26ea8ae242c242b71d7a50c859852cee8cb5
parent2321f3b4afc7c017f34b0cad0624b3b9ebdf2ba4 (diff)
downloadlinux-986e3f6e2b4582d9a7e61de5090042d5af85da44.tar.bz2
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>
-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;