[PATCH 2/2] staging: iio_simple_dummy: zero check param

Vladimirs Ambrosovs rodriguez.twister at gmail.com
Tue May 26 22:19:58 UTC 2015


Check for zero was added to the module parameter "instances" to
avoid the allocation of array of zero values. Although it is a valid call,
we don't want to allocate ZERO_SIZE_PTR, so need to disallow this case.
The type of variables which are compared to "instances" were also changed
to unsigned int so that no compiler complaints occur.

Signed-off-by: Vladimirs Ambrosovs <rodriguez.twister at gmail.com>
---
 drivers/staging/iio/iio_simple_dummy.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/iio/iio_simple_dummy.c b/drivers/staging/iio/iio_simple_dummy.c
index 88fbb4f..2744a1b 100644
--- a/drivers/staging/iio/iio_simple_dummy.c
+++ b/drivers/staging/iio/iio_simple_dummy.c
@@ -30,7 +30,7 @@
  * dummy devices are registered.
  */
 static unsigned instances = 1;
-module_param(instances, int, 0);
+module_param(instances, uint, 0);
 
 /* Pointer array used to fake bus elements */
 static struct iio_dev **iio_dummy_devs;
@@ -706,9 +706,10 @@ static void iio_dummy_remove(int index)
  */
 static __init int iio_dummy_init(void)
 {
-	int i, ret;
+	unsigned int i;
+	int ret;
 
-	if (instances > 10) {
+	if (instances == 0 || instances > 10) {
 		instances = 1;
 		return -EINVAL;
 	}
@@ -742,7 +743,7 @@ module_init(iio_dummy_init);
  */
 static __exit void iio_dummy_exit(void)
 {
-	int i;
+	unsigned int i;
 
 	for (i = 0; i < instances; i++)
 		iio_dummy_remove(i);
-- 
2.4.1



More information about the devel mailing list