mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 03:27:30 -04:00
wifi: ipw2100: fix potential memory leak in ipw2100_pci_init_one()
The memory allocated in the ipw2100_alloc_device() function is not freed
in some of the error paths in ipw2100_pci_init_one(). Fix that by
converting the direct return into a goto to the error path return.
The error path when pci_enable_device() fails cannot jump to fail, since
at this point priv is not set, so perform error handling inline.
Fixes: 2c86c27501 ("Add ipw2100 wireless driver.")
Signed-off-by: Abdun Nihaal <nihaal@cse.iitm.ac.in>
Link: https://patch.msgid.link/20260620065242.93798-1-nihaal@cse.iitm.ac.in
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
committed by
Johannes Berg
parent
edf0730be3
commit
0d388f6203
@@ -6157,6 +6157,8 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
|
||||
if (err) {
|
||||
printk(KERN_WARNING DRV_NAME
|
||||
"Error calling pci_enable_device.\n");
|
||||
free_libipw(dev, 0);
|
||||
pci_iounmap(pci_dev, ioaddr);
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -6169,16 +6171,14 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
|
||||
if (err) {
|
||||
printk(KERN_WARNING DRV_NAME
|
||||
"Error calling pci_set_dma_mask.\n");
|
||||
pci_disable_device(pci_dev);
|
||||
return err;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
err = pci_request_regions(pci_dev, DRV_NAME);
|
||||
if (err) {
|
||||
printk(KERN_WARNING DRV_NAME
|
||||
"Error calling pci_request_regions.\n");
|
||||
pci_disable_device(pci_dev);
|
||||
return err;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* We disable the RETRY_TIMEOUT register (0x41) to keep
|
||||
|
||||
Reference in New Issue
Block a user