drivers/iio/test/iio-test-rescale.c | 4 ++++ 1 file changed, 4 insertions(+)
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(+)
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;
--
2.34.1
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;
>
On Mon, 4 Nov 2024 09:14:45 +0800
Pei Xiao <xiaopei01@kylinos.cn> wrote:
> 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);
Ok. May be worth a follow up to tidy that up. A couple more cases do no real harm.
Applied to the fixes-togreg branch of iio.git.
Thanks,
Jonathan
> >>
> >> 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;
> >
© 2016 - 2026 Red Hat, Inc.