]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
ath5k: fix memory leak on buf on failed eeprom read
authorColin Ian King <colin.king@canonical.com>
Wed, 3 May 2017 14:26:00 +0000 (15:26 +0100)
committerKalle Valo <kvalo@qca.qualcomm.com>
Fri, 19 May 2017 07:51:57 +0000 (10:51 +0300)
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@canonical.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath5k/debug.c

index d068df520e7adf0ac0c7abe06fd3d40079656098..bd7f6d7b199e1816900f64c1158720626f6a70e3 100644 (file)
@@ -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;
        }