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(-)
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)
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
linux-kselftest-mirror@lists.linaro.org