ath6kl: fix memory leak in ath6kl_fwlog_block_read()
authorJesper Juhl <jj@chaosbits.net>
Wed, 11 Apr 2012 20:41:36 +0000 (22:41 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Fri, 13 Apr 2012 11:42:15 +0000 (14:42 +0300)
If, in
drivers/net/wireless/ath/ath6kl/debug.c::ath6kl_fwlog_block_read(),
the call to wait_for_completion_interruptible() returns -ERESTARTSYS
then we'll return without freeing the (as yet unused) memory we
allocated for 'buf' - thus leaking it.

Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/debug.c

index 2bcd450..496382f 100644 (file)
@@ -407,8 +407,10 @@ static ssize_t ath6kl_fwlog_block_read(struct file *file,
 
                ret = wait_for_completion_interruptible(
                        &ar->debug.fwlog_completion);
-               if (ret == -ERESTARTSYS)
+               if (ret == -ERESTARTSYS) {
+                       vfree(buf);
                        return ret;
+               }
 
                spin_lock(&ar->debug.fwlog_queue.lock);
        }