unioxx5: don't access *data when insn->n == 0
authorIan Abbott <abbotti@mev.co.uk>
Thu, 15 Dec 2011 18:31:00 +0000 (18:31 +0000)
committerIan Abbott <abbotti@mev.co.uk>
Thu, 15 Dec 2011 18:31:00 +0000 (18:31 +0000)
Due to recent change to do_insnlist_ioctl() and do_insn_ioctl(), the
'data' pointer will be NULL when insn->n == 0.  Do not access *data in
this case.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
comedi/drivers/unioxx5.c

index 3dc865c8521716cf6c4c35079c6ae864e9e08123..dd4cf32c390af69e1183df845eb104d5cc9445c1 100644 (file)
@@ -162,6 +162,9 @@ static int unioxx5_subdev_read(comedi_device * dev, comedi_subdevice * subdev,
        unioxx5_subd_priv *usp = subdev->private;
        int channel, type;
 
+       if (insn->n == 0)
+               return 0;
+
        channel = CR_CHAN(insn->chanspec);
        type = usp->usp_module_type[channel / 2];       /* defining module type(analog or digital) */
 
@@ -182,6 +185,9 @@ static int unioxx5_subdev_write(comedi_device * dev, comedi_subdevice * subdev,
        unioxx5_subd_priv *usp = subdev->private;
        int channel, type;
 
+       if (insn->n == 0)
+               return 0;
+
        channel = CR_CHAN(insn->chanspec);
        type = usp->usp_module_type[channel / 2];       /* defining module type(analog or digital) */