diff options
author | H Hartley Sweeten <hartleys@visionengravers.com> | 2012-08-17 18:21:12 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-09-04 11:20:41 -0700 |
commit | f853d9ddf4867a4629753be4af7c5b98f7b7edd0 (patch) | |
tree | 4ebe4692a249729e5f2c32196ff1ccb483f1852a | |
parent | cb448d6572219efa4a6eb0c98f37125079b78549 (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.c | 2 |
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) |