aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH Hartley Sweeten <hartleys@visionengravers.com>2012-08-17 18:21:12 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-09-04 11:20:41 -0700
commitf853d9ddf4867a4629753be4af7c5b98f7b7edd0 (patch)
tree4ebe4692a249729e5f2c32196ff1ccb483f1852a
parentcb448d6572219efa4a6eb0c98f37125079b78549 (diff)
staging: comedi: adv_pci_dio: fix bug in 'detach'
The 'attach' function can fail between when the devpriv and the comedi subdevices are allocated. If it does the 'detach' will try to access unallocated memory when it goes thru the subdevices. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/comedi/drivers/adv_pci_dio.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/staging/comedi/drivers/adv_pci_dio.c b/drivers/staging/comedi/drivers/adv_pci_dio.c
index 4da0e7bd204..a4c1b13136b 100644
--- a/drivers/staging/comedi/drivers/adv_pci_dio.c
+++ b/drivers/staging/comedi/drivers/adv_pci_dio.c
@@ -1184,6 +1184,8 @@ static void pci_dio_detach(struct comedi_device *dev)
if (devpriv) {
if (devpriv->valid)
pci_dio_reset(dev);
+ }
+ if (dev->subdevices) {
for (i = 0; i < dev->n_subdevices; i++) {
s = dev->subdevices + i;
if (s->type == COMEDI_SUBD_DIO)