On 15-12-2011 01:00, Rusty Russell wrote: > module_param_array(), unlike its non-array cousins, didn't check the type > of the variable. Fixing this found two bugs. > > Cc: Luca Risolia <luca.risolia@xxxxxxxxxxxxxxx> > Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxx> > Cc: Eric Piel <eric.piel@xxxxxxxxxxxxxxxx> > Cc: linux-media@xxxxxxxxxxxxxxx > Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx> > --- > drivers/media/video/et61x251/et61x251_core.c | 4 ++-- > drivers/media/video/sn9c102/sn9c102_core.c | 4 ++-- Acked-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> > drivers/mfd/janz-cmodio.c | 2 +- > drivers/misc/lis3lv02d/lis3lv02d.c | 2 ++ > include/linux/moduleparam.h | 1 + > 5 files changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/media/video/et61x251/et61x251_core.c b/drivers/media/video/et61x251/et61x251_core.c > --- a/drivers/media/video/et61x251/et61x251_core.c > +++ b/drivers/media/video/et61x251/et61x251_core.c > @@ -76,8 +76,8 @@ MODULE_PARM_DESC(video_nr, > "\none and for every other camera." > "\n"); > > -static short force_munmap[] = {[0 ... ET61X251_MAX_DEVICES-1] = > - ET61X251_FORCE_MUNMAP}; > +static bool force_munmap[] = {[0 ... ET61X251_MAX_DEVICES-1] = > + ET61X251_FORCE_MUNMAP}; > module_param_array(force_munmap, bool, NULL, 0444); > MODULE_PARM_DESC(force_munmap, > "\n<0|1[,...]> Force the application to unmap previously" > diff --git a/drivers/media/video/sn9c102/sn9c102_core.c b/drivers/media/video/sn9c102/sn9c102_core.c > --- a/drivers/media/video/sn9c102/sn9c102_core.c > +++ b/drivers/media/video/sn9c102/sn9c102_core.c > @@ -75,8 +75,8 @@ MODULE_PARM_DESC(video_nr, > "\none and for every other camera." > "\n"); > > -static short force_munmap[] = {[0 ... SN9C102_MAX_DEVICES-1] = > - SN9C102_FORCE_MUNMAP}; > +static bool force_munmap[] = {[0 ... SN9C102_MAX_DEVICES-1] = > + SN9C102_FORCE_MUNMAP}; > module_param_array(force_munmap, bool, NULL, 0444); > MODULE_PARM_DESC(force_munmap, > " <0|1[,...]>" > diff --git a/drivers/mfd/janz-cmodio.c b/drivers/mfd/janz-cmodio.c > --- a/drivers/mfd/janz-cmodio.c > +++ b/drivers/mfd/janz-cmodio.c > @@ -33,7 +33,7 @@ > > /* Module Parameters */ > static unsigned int num_modules = CMODIO_MAX_MODULES; > -static unsigned char *modules[CMODIO_MAX_MODULES] = { > +static char *modules[CMODIO_MAX_MODULES] = { > "empty", "empty", "empty", "empty", > }; > > diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c > --- a/drivers/misc/lis3lv02d/lis3lv02d.c > +++ b/drivers/misc/lis3lv02d/lis3lv02d.c > @@ -111,6 +111,8 @@ static struct kernel_param_ops param_ops > .get = param_get_int, > }; > > +#define param_check_axis(name, p) param_check_int(name, p) > + > module_param_array_named(axes, lis3_dev.ac.as_array, axis, NULL, 0644); > MODULE_PARM_DESC(axes, "Axis-mapping for x,y,z directions"); > > diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h > --- a/include/linux/moduleparam.h > +++ b/include/linux/moduleparam.h > @@ -395,6 +395,7 @@ extern int param_get_invbool(char *buffe > * module_param_named() for why this might be necessary. > */ > #define module_param_array_named(name, array, type, nump, perm) \ > + param_check_##type(name, &(array)[0]); \ > static const struct kparam_array __param_arr_##name \ > = { .max = ARRAY_SIZE(array), .num = nump, \ > .ops = ¶m_ops_##type, \ -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html