diff options
author | Jesper Juhl <jj@chaosbits.net> | 2011-01-06 05:50:29 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-01-09 18:45:48 -0500 |
commit | 26877c794407855f65c056d7914b2e72ae9b93b8 (patch) | |
tree | cc8e388d3a841fb089ea0fd3209b453e155a3dc2 /drivers/net/hamradio/yam.c | |
parent | b5680e0b591f2701c5ba7d5fc8f96b55414073c8 (diff) |
hamradio: Resolve memory leak due to missing firmware release in add_mcs()
Failure to release_firmware() in drivers/net/hamradio/yam.c::add_mcs()
causes memory leak.
This patch should fix it.
Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/hamradio/yam.c')
-rw-r--r-- | drivers/net/hamradio/yam.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c index 4e7d1d0a2340..7d9ced0738c5 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c | |||
@@ -396,7 +396,7 @@ static unsigned char *add_mcs(unsigned char *bits, int bitrate, | |||
396 | while (p) { | 396 | while (p) { |
397 | if (p->bitrate == bitrate) { | 397 | if (p->bitrate == bitrate) { |
398 | memcpy(p->bits, bits, YAM_FPGA_SIZE); | 398 | memcpy(p->bits, bits, YAM_FPGA_SIZE); |
399 | return p->bits; | 399 | goto out; |
400 | } | 400 | } |
401 | p = p->next; | 401 | p = p->next; |
402 | } | 402 | } |
@@ -411,7 +411,7 @@ static unsigned char *add_mcs(unsigned char *bits, int bitrate, | |||
411 | p->bitrate = bitrate; | 411 | p->bitrate = bitrate; |
412 | p->next = yam_data; | 412 | p->next = yam_data; |
413 | yam_data = p; | 413 | yam_data = p; |
414 | 414 | out: | |
415 | release_firmware(fw); | 415 | release_firmware(fw); |
416 | return p->bits; | 416 | return p->bits; |
417 | } | 417 | } |