Browse Source

ath6kl: fix memory leak in ath6kl_fwlog_block_read()

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>
Jesper Juhl 13 years ago
parent
commit
ae9a3405fd
1 changed files with 3 additions and 1 deletions
  1. 3 1
      drivers/net/wireless/ath/ath6kl/debug.c

+ 3 - 1
drivers/net/wireless/ath/ath6kl/debug.c

@@ -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);
 	}