Message ID | ecd56a85e54a96c2f0313c114075a21a76071ea2.1730259869.git.xiaopei01@kylinos.cn (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | iio: test : check null return of kunit_kmalloc in iio_rescale_test_scale | expand |
On Wed, 30 Oct 2024 11:48:54 +0800 Pei Xiao <xiaopei01@kylinos.cn> wrote: > kunit_kmalloc may fail, return value might be NULL and will cause > NULL pointer dereference.Add KUNIT_ASSERT_NOT_ERR_OR_NULL fix it. Can it be an error? If not why not use KUNIT_ASSERT_NOT_NULL? > > Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn> > Fixes: 8e74a48d17d5 ("iio: test: add basic tests for the iio-rescale driver") > --- > drivers/iio/test/iio-test-rescale.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/iio/test/iio-test-rescale.c b/drivers/iio/test/iio-test-rescale.c > index 31ee55a6faed..11bfff6636a3 100644 > --- a/drivers/iio/test/iio-test-rescale.c > +++ b/drivers/iio/test/iio-test-rescale.c > @@ -652,6 +652,8 @@ static void iio_rescale_test_scale(struct kunit *test) > int rel_ppm; > int ret; > > + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buff); > + > rescale.numerator = t->numerator; > rescale.denominator = t->denominator; > rescale.offset = t->offset; > @@ -681,6 +683,8 @@ static void iio_rescale_test_offset(struct kunit *test) > int values[2]; > int ret; > > + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buff_off); > + > rescale.numerator = t->numerator; > rescale.denominator = t->denominator; > rescale.offset = t->offset;
On 2024/11/2 01:29, Jonathan Cameron Wrote: > On Wed, 30 Oct 2024 11:48:54 +0800 > Pei Xiao <xiaopei01@kylinos.cn> wrote: > >> kunit_kmalloc may fail, return value might be NULL and will cause >> NULL pointer dereference.Add KUNIT_ASSERT_NOT_ERR_OR_NULL fix it. > Can it be an error? If not why not use KUNIT_ASSERT_NOT_NULL? As you thought, initially I felt that we should use KUNIT_ASSERT_NOT_NULL. However, when I used grep KUNIT_ASSERT_NOT_ERR_OR_NULL -nr drivers/iio/test/, I found that the drivers/iio/test/ directory exclusively uses KUNIT_ASSERT_NOT_ERR_OR_NULL instead of KUNIT_ASSERT_NOT_NULL. To maintain consistency, I have changed it to KUNIT_ASSERT_NOT_ERR_OR_NULL. drivers/iio/test/iio-test-format.c:22: KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf); drivers/iio/test/iio-test-format.c:52: KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf); drivers/iio/test/iio-test-format.c:113: KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf); drivers/iio/test/iio-test-format.c:153: KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf); drivers/iio/test/iio-test-format.c:193: KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf); drivers/iio/test/iio-test-format.c:208: KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf); >> >> Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn> >> Fixes: 8e74a48d17d5 ("iio: test: add basic tests for the iio-rescale driver") >> --- >> drivers/iio/test/iio-test-rescale.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/iio/test/iio-test-rescale.c b/drivers/iio/test/iio-test-rescale.c >> index 31ee55a6faed..11bfff6636a3 100644 >> --- a/drivers/iio/test/iio-test-rescale.c >> +++ b/drivers/iio/test/iio-test-rescale.c >> @@ -652,6 +652,8 @@ static void iio_rescale_test_scale(struct kunit *test) >> int rel_ppm; >> int ret; >> >> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buff); >> + >> rescale.numerator = t->numerator; >> rescale.denominator = t->denominator; >> rescale.offset = t->offset; >> @@ -681,6 +683,8 @@ static void iio_rescale_test_offset(struct kunit *test) >> int values[2]; >> int ret; >> >> + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buff_off); >> + >> rescale.numerator = t->numerator; >> rescale.denominator = t->denominator; >> rescale.offset = t->offset; >
diff --git a/drivers/iio/test/iio-test-rescale.c b/drivers/iio/test/iio-test-rescale.c index 31ee55a6faed..11bfff6636a3 100644 --- a/drivers/iio/test/iio-test-rescale.c +++ b/drivers/iio/test/iio-test-rescale.c @@ -652,6 +652,8 @@ static void iio_rescale_test_scale(struct kunit *test) int rel_ppm; int ret; + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buff); + rescale.numerator = t->numerator; rescale.denominator = t->denominator; rescale.offset = t->offset; @@ -681,6 +683,8 @@ static void iio_rescale_test_offset(struct kunit *test) int values[2]; int ret; + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buff_off); + rescale.numerator = t->numerator; rescale.denominator = t->denominator; rescale.offset = t->offset;
kunit_kmalloc may fail, return value might be NULL and will cause NULL pointer dereference.Add KUNIT_ASSERT_NOT_ERR_OR_NULL fix it. Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn> Fixes: 8e74a48d17d5 ("iio: test: add basic tests for the iio-rescale driver") --- drivers/iio/test/iio-test-rescale.c | 4 ++++ 1 file changed, 4 insertions(+)