]> git.baikalelectronics.ru Git - kernel.git/commit
kunit: fix reference count leak in kfree_at_end
authorXiyu Yang <xiyuyang19@fudan.edu.cn>
Thu, 9 Sep 2021 07:24:36 +0000 (15:24 +0800)
committerShuah Khan <skhan@linuxfoundation.org>
Fri, 1 Oct 2021 19:49:38 +0000 (13:49 -0600)
commit2ea117f2cdcfcbe63172f185a7f26bf15edb5eea
tree92ecb8b41e5469aff03dc367e7501d2c7f3b9f9e
parentdfe35e32f2b99f146cca2aa685149572f753c4e3
kunit: fix reference count leak in kfree_at_end

The reference counting issue happens in the normal path of
kfree_at_end(). When kunit_alloc_and_get_resource() is invoked, the
function forgets to handle the returned resource object, whose refcount
increased inside, causing a refcount leak.

Fix this issue by calling kunit_alloc_resource() instead of
kunit_alloc_and_get_resource().

Fixed the following when applying:
Shuah Khan <skhan@linuxfoundation.org>

CHECK: Alignment should match open parenthesis
+ kunit_alloc_resource(test, NULL, kfree_res_free, GFP_KERNEL,
       (void *)to_free);

Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
Reviewed-by: Daniel Latypov <dlatypov@google.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
lib/kunit/executor_test.c