[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170503142600.32609-1-colin.king@canonical.com>
Date: Wed, 3 May 2017 15:26:00 +0100
From: Colin King <colin.king@...onical.com>
To: Jiri Slaby <jirislaby@...il.com>,
Nick Kossifidis <mickflemm@...il.com>,
"Luis R . Rodriguez" <mcgrof@...not-panic.com>,
Kalle Valo <kvalo@...eaurora.org>,
linux-wireless@...r.kernel.org
Cc: kernel-janitors@...r.kernel.org, netdev@...r.kernel.org
Subject: [PATCH] ath5k: fix memory leak on buf on failed eeprom read
From: Colin Ian King <colin.king@...onical.com>
The AR5K_EEPROM_READ macro returns with -EIO if a read error
occurs causing a memory leak on the allocated buffer buf. Fix
this by explicitly calling ath5k_hw_nvram_read and exiting on
the via the freebuf label that performs the necessary free'ing
of buf when a read error occurs.
Detected by CoverityScan, CID#1248782 ("Resource Leak")
Signed-off-by: Colin Ian King <colin.king@...onical.com>
---
drivers/net/wireless/ath/ath5k/debug.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath5k/debug.c b/drivers/net/wireless/ath/ath5k/debug.c
index d068df520e7a..bd7f6d7b199e 100644
--- a/drivers/net/wireless/ath/ath5k/debug.c
+++ b/drivers/net/wireless/ath/ath5k/debug.c
@@ -938,7 +938,10 @@ static int open_file_eeprom(struct inode *inode, struct file *file)
}
for (i = 0; i < eesize; ++i) {
- AR5K_EEPROM_READ(i, val);
+ if (!ath5k_hw_nvram_read(ah, i, &val)) {
+ ret = -EIO;
+ goto freebuf;
+ }
buf[i] = val;
}
--
2.11.0
Powered by blists - more mailing lists