Module: xenomai-abe Branch: analogy Commit: 174d15408ac5b674ead6e65b0d432769309e5c92 URL: http://git.xenomai.org/?p=xenomai-abe.git;a=commit;h=174d15408ac5b674ead6e65b0d432769309e5c92
Author: Alexis Berlemont <alexis.berlem...@gmail.com> Date: Sat Dec 19 20:52:06 2009 +0100 analogy: fix a bug in the execution of a list of instructions There was a mistake in the declaration of the structure "kernel list of instructions". This error triggered a corruption inside the data copied from user space. --- include/analogy/instruction.h | 2 +- ksrc/drivers/analogy/instruction.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/analogy/instruction.h b/include/analogy/instruction.h index 1ac7484..b1564d7 100644 --- a/include/analogy/instruction.h +++ b/include/analogy/instruction.h @@ -210,7 +210,7 @@ typedef struct a4l_kernel_instruction a4l_kinsn_t; struct a4l_kernel_instruction_list { unsigned int count; a4l_kinsn_t *insns; - a4l_kinsn_t *__uinsns; + a4l_insn_t *__uinsns; }; typedef struct a4l_kernel_instruction_list a4l_kilst_t; diff --git a/ksrc/drivers/analogy/instruction.c b/ksrc/drivers/analogy/instruction.c index 2ca7305..5ecb366 100644 --- a/ksrc/drivers/analogy/instruction.c +++ b/ksrc/drivers/analogy/instruction.c @@ -203,10 +203,11 @@ int a4l_do_insn(a4l_cxt_t * cxt, a4l_kinsn_t * dsc) a4l_dev_t *dev = a4l_get_dev(cxt); int (*hdlr) (a4l_subd_t *, a4l_kinsn_t *) = NULL; - /* Checks the subdevice index */ if (dsc->idx_subd >= dev->transfer.nb_subd) { - __a4l_err("a4l_do_insn: subdevice index out of range\n"); + __a4l_err("a4l_do_insn: " + "subdevice index out of range (idx=%d)\n", + dsc->idx_subd); return -EINVAL; } @@ -325,7 +326,7 @@ int a4l_fill_ilstdsc(a4l_cxt_t * cxt, a4l_kilst_t * dsc, void *arg) } /* Keeps the user pointer in an opaque field */ - dsc->__uinsns = dsc->insns; + dsc->__uinsns = (a4l_insn_t *)dsc->insns; dsc->insns = rtdm_malloc(dsc->count * sizeof(a4l_kinsn_t)); if (dsc->insns == NULL) _______________________________________________ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git