lkml.org 
[lkml]   [2022]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] kunit: executor: Fix a memory leak on failure in kunit_filter_tests
    From
    Hi David,

    On 7/12/2022 17:56, David Gow wrote:
    > It's possible that memory allocation for the copy will fail, but for the

    I think it is "for the _filtered_ will fail". Maybe a typo?

    Thanks,
    Yujie

    > copy of the suite to succeed. In this case, the copy could be leaked.
    >
    > Properly free 'copy' in the error case for the allocation of 'filtered'
    > failing.
    >
    > Note that there may also have been a similar issue in
    > kunit_filter_subsuites, before it was removed in "kunit: flatten
    > kunit_suite*** to kunit_suite** in .kunit_test_suites".
    >
    > This was reported by clang-analyzer via the kernel test robot, here:
    > https://lore.kernel.org/all/c8073b8e-7b9e-0830-4177-87c12f16349c@intel.com/
    >
    > Fixes: a02353f49162 ("kunit: bail out of test filtering logic quicker if OOM")
    > Reported-by: kernel test robot <yujie.liu@intel.com>
    > Signed-off-by: David Gow <davidgow@google.com>
    > ---
    > lib/kunit/executor.c | 4 +++-
    > 1 file changed, 3 insertions(+), 1 deletion(-)
    >
    > diff --git a/lib/kunit/executor.c b/lib/kunit/executor.c
    > index 6c489d6c5e5d..5e223327196a 100644
    > --- a/lib/kunit/executor.c
    > +++ b/lib/kunit/executor.c
    > @@ -74,8 +74,10 @@ kunit_filter_tests(const struct kunit_suite *const suite, const char *test_glob)
    > return ERR_PTR(-ENOMEM);
    >
    > filtered = kcalloc(n + 1, sizeof(*filtered), GFP_KERNEL);
    > - if (!filtered)
    > + if (!filtered) {
    > + kfree(copy);
    > return ERR_PTR(-ENOMEM);
    > + }
    >
    > n = 0;
    > kunit_suite_for_each_test_case(suite, test_case) {

    \
     
     \ /
      Last update: 2022-07-12 19:55    [W:5.134 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site