Message ID | 20241014121922.1280583-1-ruanjinjie@huawei.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 217a3d98d1e9891a8b1438a27dfbc64ddf01f691 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v2] net: microchip: vcap api: Fix memory leaks in vcap_api_encode_rule_test() | expand |
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Mon, 14 Oct 2024 20:19:22 +0800 you wrote: > Commit a3c1e45156ad ("net: microchip: vcap: Fix use-after-free error in > kunit test") fixed the use-after-free error, but introduced below > memory leaks by removing necessary vcap_free_rule(), add it to fix it. > > unreferenced object 0xffffff80ca58b700 (size 192): > comm "kunit_try_catch", pid 1215, jiffies 4294898264 > hex dump (first 32 bytes): > 00 12 7a 00 05 00 00 00 0a 00 00 00 64 00 00 00 ..z.........d... > 00 00 00 00 00 00 00 00 00 04 0b cc 80 ff ff ff ................ > backtrace (crc 9c09c3fe): > [<0000000052a0be73>] kmemleak_alloc+0x34/0x40 > [<0000000043605459>] __kmalloc_cache_noprof+0x26c/0x2f4 > [<0000000040a01b8d>] vcap_alloc_rule+0x3cc/0x9c4 > [<000000003fe86110>] vcap_api_encode_rule_test+0x1ac/0x16b0 > [<00000000b3595fc4>] kunit_try_run_case+0x13c/0x3ac > [<0000000010f5d2bf>] kunit_generic_run_threadfn_adapter+0x80/0xec > [<00000000c5d82c9a>] kthread+0x2e8/0x374 > [<00000000f4287308>] ret_from_fork+0x10/0x20 > unreferenced object 0xffffff80cc0b0400 (size 64): > comm "kunit_try_catch", pid 1215, jiffies 4294898265 > hex dump (first 32 bytes): > 80 04 0b cc 80 ff ff ff 18 b7 58 ca 80 ff ff ff ..........X..... > 39 00 00 00 02 00 00 00 06 05 04 03 02 01 ff ff 9............... > backtrace (crc daf014e9): > [<0000000052a0be73>] kmemleak_alloc+0x34/0x40 > [<0000000043605459>] __kmalloc_cache_noprof+0x26c/0x2f4 > [<000000000ff63fd4>] vcap_rule_add_key+0x2cc/0x528 > [<00000000dfdb1e81>] vcap_api_encode_rule_test+0x224/0x16b0 > [<00000000b3595fc4>] kunit_try_run_case+0x13c/0x3ac > [<0000000010f5d2bf>] kunit_generic_run_threadfn_adapter+0x80/0xec > [<00000000c5d82c9a>] kthread+0x2e8/0x374 > [<00000000f4287308>] ret_from_fork+0x10/0x20 > unreferenced object 0xffffff80cc0b0700 (size 64): > comm "kunit_try_catch", pid 1215, jiffies 4294898265 > hex dump (first 32 bytes): > 80 07 0b cc 80 ff ff ff 28 b7 58 ca 80 ff ff ff ........(.X..... > 3c 00 00 00 00 00 00 00 01 2f 03 b3 ec ff ff ff <......../...... > backtrace (crc 8d877792): > [<0000000052a0be73>] kmemleak_alloc+0x34/0x40 > [<0000000043605459>] __kmalloc_cache_noprof+0x26c/0x2f4 > [<000000006eadfab7>] vcap_rule_add_action+0x2d0/0x52c > [<00000000323475d1>] vcap_api_encode_rule_test+0x4d4/0x16b0 > [<00000000b3595fc4>] kunit_try_run_case+0x13c/0x3ac > [<0000000010f5d2bf>] kunit_generic_run_threadfn_adapter+0x80/0xec > [<00000000c5d82c9a>] kthread+0x2e8/0x374 > [<00000000f4287308>] ret_from_fork+0x10/0x20 > unreferenced object 0xffffff80cc0b0900 (size 64): > comm "kunit_try_catch", pid 1215, jiffies 4294898266 > hex dump (first 32 bytes): > 80 09 0b cc 80 ff ff ff 80 06 0b cc 80 ff ff ff ................ > 7d 00 00 00 01 00 00 00 00 00 00 00 ff 00 00 00 }............... > backtrace (crc 34181e56): > [<0000000052a0be73>] kmemleak_alloc+0x34/0x40 > [<0000000043605459>] __kmalloc_cache_noprof+0x26c/0x2f4 > [<000000000ff63fd4>] vcap_rule_add_key+0x2cc/0x528 > [<00000000991e3564>] vcap_val_rule+0xcf0/0x13e8 > [<00000000fc9868e5>] vcap_api_encode_rule_test+0x678/0x16b0 > [<00000000b3595fc4>] kunit_try_run_case+0x13c/0x3ac > [<0000000010f5d2bf>] kunit_generic_run_threadfn_adapter+0x80/0xec > [<00000000c5d82c9a>] kthread+0x2e8/0x374 > [<00000000f4287308>] ret_from_fork+0x10/0x20 > unreferenced object 0xffffff80cc0b0980 (size 64): > comm "kunit_try_catch", pid 1215, jiffies 4294898266 > hex dump (first 32 bytes): > 18 b7 58 ca 80 ff ff ff 00 09 0b cc 80 ff ff ff ..X............. > 67 00 00 00 00 00 00 00 01 01 74 88 c0 ff ff ff g.........t..... > backtrace (crc 275fd9be): > [<0000000052a0be73>] kmemleak_alloc+0x34/0x40 > [<0000000043605459>] __kmalloc_cache_noprof+0x26c/0x2f4 > [<000000000ff63fd4>] vcap_rule_add_key+0x2cc/0x528 > [<000000001396a1a2>] test_add_def_fields+0xb0/0x100 > [<000000006e7621f0>] vcap_val_rule+0xa98/0x13e8 > [<00000000fc9868e5>] vcap_api_encode_rule_test+0x678/0x16b0 > [<00000000b3595fc4>] kunit_try_run_case+0x13c/0x3ac > [<0000000010f5d2bf>] kunit_generic_run_threadfn_adapter+0x80/0xec > [<00000000c5d82c9a>] kthread+0x2e8/0x374 > [<00000000f4287308>] ret_from_fork+0x10/0x20 > ...... > > [...] Here is the summary with links: - [net,v2] net: microchip: vcap api: Fix memory leaks in vcap_api_encode_rule_test() https://git.kernel.org/netdev/net/c/217a3d98d1e9 You are awesome, thank you!
diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c index f2a5a36fdacd..7251121ab196 100644 --- a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c +++ b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c @@ -1444,6 +1444,8 @@ static void vcap_api_encode_rule_test(struct kunit *test) ret = vcap_del_rule(&test_vctrl, &test_netdev, id); KUNIT_EXPECT_EQ(test, 0, ret); + + vcap_free_rule(rule); } static void vcap_api_set_rule_counter_test(struct kunit *test)