summaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorIan Abbott <abbotti@mev.co.uk>2012-10-03 16:25:15 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-10-22 11:46:34 -0700
commitf4dd2367f3ad276fe49c89a522267ea5ccb6bf80 (patch)
tree81a52677385fddf1f0a4d44269efcd39ce262c16 /drivers/staging
parent6681e63399926651cc29bcb9d92229b6f1cf1daa (diff)
downloadtalos-op-linux-f4dd2367f3ad276fe49c89a522267ea5ccb6bf80.tar.gz
talos-op-linux-f4dd2367f3ad276fe49c89a522267ea5ccb6bf80.zip
staging: comedi: 8255_pci: fix possible NULL deref during detach
`pci_8255_detach()` will be called by the comedi core if `pci_8255_attach_pci()` returns an error. It currently assumes that both `board` (assigned from the return value of `comedi_board(dev)`) and `devpriv` (assigned from `dev->private`) are non-null, but they might be null, leading to a null pointer dereference. `pci_8255_detach()` doesn't need to do anything if either `board` or `devpriv` are null, so just return early in this case. Cc: <stable@vger.kernel.org> # 3.6.x Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/comedi/drivers/8255_pci.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/staging/comedi/drivers/8255_pci.c b/drivers/staging/comedi/drivers/8255_pci.c
index 7dff3c01dc29..d00aff6671df 100644
--- a/drivers/staging/comedi/drivers/8255_pci.c
+++ b/drivers/staging/comedi/drivers/8255_pci.c
@@ -289,6 +289,8 @@ static void pci_8255_detach(struct comedi_device *dev)
struct comedi_subdevice *s;
int i;
+ if (!board || !devpriv)
+ return;
if (dev->subdevices) {
for (i = 0; i < board->n_8255; i++) {
s = &dev->subdevices[i];
OpenPOWER on IntegriCloud