diff mbox series

[next] kunit: fix dereference of suite before it has been null checked

Message ID 20200402150314.568044-1-colin.king@canonical.com (mailing list archive)
State New
Headers show
Series [next] kunit: fix dereference of suite before it has been null checked | expand

Commit Message

Colin King April 2, 2020, 3:03 p.m. UTC
From: Colin Ian King <colin.king@canonical.com>

Currently pointer 'suite' is dereferenced when variable success
is being initialized before the pointer is null checked. Fix this
by only dereferencing suite after is has been null checked.

Addresses-Coverity: ("Dereference before null check")
Fixes: e2219db280e3 ("kunit: add debugfs /sys/kernel/debug/kunit/<suite>/results display")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 lib/kunit/debugfs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Alan Maguire April 2, 2020, 3:24 p.m. UTC | #1
On Thu, 2 Apr 2020, Colin King wrote:

> From: Colin Ian King <colin.king@canonical.com>
> 
> Currently pointer 'suite' is dereferenced when variable success
> is being initialized before the pointer is null checked. Fix this
> by only dereferencing suite after is has been null checked.
> 
> Addresses-Coverity: ("Dereference before null check")
> Fixes: e2219db280e3 ("kunit: add debugfs /sys/kernel/debug/kunit/<suite>/results display")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>

Reviewed-by: Alan Maguire <alan.maguire@oracle.com>

Thanks for spotting this!

Alan

> ---
>  lib/kunit/debugfs.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/kunit/debugfs.c b/lib/kunit/debugfs.c
> index 9214c493d8b7..05547642f37c 100644
> --- a/lib/kunit/debugfs.c
> +++ b/lib/kunit/debugfs.c
> @@ -52,12 +52,13 @@ static void debugfs_print_result(struct seq_file *seq,
>  static int debugfs_print_results(struct seq_file *seq, void *v)
>  {
>  	struct kunit_suite *suite = (struct kunit_suite *)seq->private;
> -	bool success = kunit_suite_has_succeeded(suite);
> +	bool success;
>  	struct kunit_case *test_case;
>  
>  	if (!suite || !suite->log)
>  		return 0;
>  
> +	success = kunit_suite_has_succeeded(suite);
>  	seq_printf(seq, "%s", suite->log);
>  
>  	kunit_suite_for_each_test_case(suite, test_case)
> -- 
> 2.25.1
> 
>
diff mbox series

Patch

diff --git a/lib/kunit/debugfs.c b/lib/kunit/debugfs.c
index 9214c493d8b7..05547642f37c 100644
--- a/lib/kunit/debugfs.c
+++ b/lib/kunit/debugfs.c
@@ -52,12 +52,13 @@  static void debugfs_print_result(struct seq_file *seq,
 static int debugfs_print_results(struct seq_file *seq, void *v)
 {
 	struct kunit_suite *suite = (struct kunit_suite *)seq->private;
-	bool success = kunit_suite_has_succeeded(suite);
+	bool success;
 	struct kunit_case *test_case;
 
 	if (!suite || !suite->log)
 		return 0;
 
+	success = kunit_suite_has_succeeded(suite);
 	seq_printf(seq, "%s", suite->log);
 
 	kunit_suite_for_each_test_case(suite, test_case)