`s626_enc_insn_config()` is incorrectly dereferencing `insn->data` which
is a pointer to user memory.  It should be dereferencing the separate
`data` parameter that points to a copy of the data in kernel memory.

Cc: sta...@vger.kernel.org
Signed-off-by: Ian Abbott <abbo...@mev.co.uk>
---
 drivers/staging/comedi/drivers/s626.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/comedi/drivers/s626.c 
b/drivers/staging/comedi/drivers/s626.c
index f90578e..2b03b68 100644
--- a/drivers/staging/comedi/drivers/s626.c
+++ b/drivers/staging/comedi/drivers/s626.c
@@ -1868,7 +1868,7 @@ static int s626_enc_insn_config(struct comedi_device *dev,
        /*   (data==NULL) ? (Preloadvalue=0) : (Preloadvalue=data[0]); */
 
        k->SetMode(dev, k, Setup, TRUE);
-       Preload(dev, k, *(insn->data));
+       Preload(dev, k, data[0]);
        k->PulseIndex(dev, k);
        SetLatchSource(dev, k, valueSrclatch);
        k->SetEnable(dev, k, (uint16_t) (enab != 0));
-- 
1.7.12

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to