mirror of
https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
synced 2025-09-13 15:43:39 +10:00
kunit: Fix possible memory leak in kunit_filter_suites()
If both filter_glob and filters are not NULL, and kunit_parse_glob_filter()
succeed, but kcalloc parsed_filters fails, the suite_glob and test_glob of
parsed kzalloc in kunit_parse_glob_filter() will be leaked.
As Rae suggested, assign -ENOMEM to *err to correctly free copy and goto
free_parsed_glob to free the suite/test_glob of parsed.
Fixes: 1c9fd080df
("kunit: fix uninitialized variables bug in attributes filtering")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Suggested-by: Rae Moar <rmoar@google.com>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
2b56a4b79b
commit
9076bc476d
@ -175,8 +175,8 @@ kunit_filter_suites(const struct kunit_suite_set *suite_set,
|
|||||||
filter_count = kunit_get_filter_count(filters);
|
filter_count = kunit_get_filter_count(filters);
|
||||||
parsed_filters = kcalloc(filter_count, sizeof(*parsed_filters), GFP_KERNEL);
|
parsed_filters = kcalloc(filter_count, sizeof(*parsed_filters), GFP_KERNEL);
|
||||||
if (!parsed_filters) {
|
if (!parsed_filters) {
|
||||||
kfree(copy);
|
*err = -ENOMEM;
|
||||||
return filtered;
|
goto free_parsed_glob;
|
||||||
}
|
}
|
||||||
for (j = 0; j < filter_count; j++)
|
for (j = 0; j < filter_count; j++)
|
||||||
parsed_filters[j] = kunit_next_attr_filter(&filters, err);
|
parsed_filters[j] = kunit_next_attr_filter(&filters, err);
|
||||||
|
Loading…
Reference in New Issue
Block a user