From: Ian Abbott Date: Tue, 18 Sep 2012 18:46:58 +0000 (+0100) Subject: staging: comedi: don't dereference user memory for INSN_INTTRIG X-Git-Tag: v3.2.32~112 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=20a94a21d7cc392568e70c945983ecf5a79851ff;p=thirdparty%2Fkernel%2Fstable.git staging: comedi: don't dereference user memory for INSN_INTTRIG commit 5d06e3df280bd230e2eadc16372e62818c63e894 upstream. `parse_insn()` is dereferencing the user-space pointer `insn->data` directly when handling the `INSN_INTTRIG` comedi instruction. It shouldn't be using `insn->data` at all; it should be using the separate `data` pointer passed to the function. Fix it. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman Signed-off-by: Ben Hutchings --- diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 4ad2c0efc5c41..c08c7190426a5 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -843,7 +843,7 @@ static int parse_insn(struct comedi_device *dev, struct comedi_insn *insn, ret = -EAGAIN; break; } - ret = s->async->inttrig(dev, s, insn->data[0]); + ret = s->async->inttrig(dev, s, data[0]); if (ret >= 0) ret = 1; break;