ke_counter: don't access *data when insn->n == 0
authorIan Abbott <abbotti@mev.co.uk>
Thu, 15 Dec 2011 19:32:31 +0000 (19:32 +0000)
committerIan Abbott <abbotti@mev.co.uk>
Thu, 15 Dec 2011 19:32:31 +0000 (19:32 +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/ke_counter.c

index 7e08bea86d727d16be2ee0da996416df7f024931..d14bcb62a37a8d6b2b22be94e5b9cf061ee0ec37 100644 (file)
@@ -104,6 +104,9 @@ static int cnt_winsn(comedi_device * dev,
 {
        int chan = CR_CHAN(insn->chanspec);
 
+       if (insn->n == 0)
+               return 0;
+
        outb((unsigned char)((data[0] >> 24) & 0xff),
                dev->iobase + chan * 0x20 + 0x10);
        outb((unsigned char)((data[0] >> 16) & 0xff),
@@ -126,6 +129,9 @@ static int cnt_rinsn(comedi_device * dev,
        int chan = CR_CHAN(insn->chanspec);
        int result;
 
+       if (insn->n == 0)
+               return 0;
+
        a0 = inb(dev->iobase + chan * 0x20);
        a1 = inb(dev->iobase + chan * 0x20 + 0x04);
        a2 = inb(dev->iobase + chan * 0x20 + 0x08);