summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPan Bian <bianpan2016@163.com>2017-04-23 17:38:35 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-03-24 10:57:33 +0100
commit4525033938cb6d8ed70717506917cb5e547debb8 (patch)
treeea6939e1c5e60b359c9016a2b15c37d8e16c1079
parentfc0808f0c2a43212f73d438e083a34251984540c (diff)
downloadlinux-stable-4525033938cb6d8ed70717506917cb5e547debb8.tar.gz
linux-stable-4525033938cb6d8ed70717506917cb5e547debb8.tar.bz2
linux-stable-4525033938cb6d8ed70717506917cb5e547debb8.zip
wan: pc300too: abort path on failure
[ Upstream commit 2a39e7aa8a98f777f0732ca7125b6c9668791760 ] In function pc300_pci_init_one(), on the ioremap error path, function pc300_pci_remove_one() is called to free the allocated memory. However, the path is not terminated, and the freed memory will be used later, resulting in use-after-free bugs. This path fixes the bug. Signed-off-by: Pan Bian <bianpan2016@163.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/net/wan/pc300too.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wan/pc300too.c b/drivers/net/wan/pc300too.c
index db363856e0b5..2b064998915f 100644
--- a/drivers/net/wan/pc300too.c
+++ b/drivers/net/wan/pc300too.c
@@ -347,6 +347,7 @@ static int pc300_pci_init_one(struct pci_dev *pdev,
card->rambase == NULL) {
pr_err("ioremap() failed\n");
pc300_pci_remove_one(pdev);
+ return -ENOMEM;
}
/* PLX PCI 9050 workaround for local configuration register read bug */