mirror_ubuntu-kernels/drivers/net/ethernet/microchip
Jinjie Ruan 281f65d29d net: microchip: vcap api: Fix possible memory leak for vcap_dup_rule()
Inject fault When select CONFIG_VCAP_KUNIT_TEST, the below memory leak
occurs. If kzalloc() for duprule succeeds, but the following
kmemdup() fails, the duprule, ckf and caf memory will be leaked. So kfree
them in the error path.

unreferenced object 0xffff122744c50600 (size 192):
  comm "kunit_try_catch", pid 346, jiffies 4294896122 (age 911.812s)
  hex dump (first 32 bytes):
    10 27 00 00 04 00 00 00 1e 00 00 00 2c 01 00 00  .'..........,...
    00 00 00 00 00 00 00 00 18 06 c5 44 27 12 ff ff  ...........D'...
  backtrace:
    [<00000000394b0db8>] __kmem_cache_alloc_node+0x274/0x2f8
    [<0000000001bedc67>] kmalloc_trace+0x38/0x88
    [<00000000b0612f98>] vcap_dup_rule+0x50/0x460
    [<000000005d2d3aca>] vcap_add_rule+0x8cc/0x1038
    [<00000000eef9d0f8>] test_vcap_xn_rule_creator.constprop.0.isra.0+0x238/0x494
    [<00000000cbda607b>] vcap_api_rule_remove_in_front_test+0x1ac/0x698
    [<00000000c8766299>] kunit_try_run_case+0xe0/0x20c
    [<00000000c4fe9186>] kunit_generic_run_threadfn_adapter+0x50/0x94
    [<00000000f6864acf>] kthread+0x2e8/0x374
    [<0000000022e639b3>] ret_from_fork+0x10/0x20

Fixes: 814e769320 ("net: microchip: vcap api: Add a storage state to a VCAP rule")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2023-09-10 18:51:42 +01:00
..
lan966x net: lan966x: Fix return value check for vcap_get_rule() 2023-08-19 19:29:23 +01:00
sparx5 net: microchip: Remove unused declarations 2023-08-22 10:31:47 -07:00
vcap net: microchip: vcap api: Fix possible memory leak for vcap_dup_rule() 2023-09-10 18:51:42 +01:00
enc28j60_hw.h
enc28j60.c net: enc28j60: Use threaded interrupt instead of workqueue 2023-05-11 18:00:37 -07:00
encx24j600_hw.h net: encx24j600: check error in devm_regmap_init_encx24j600 2021-10-13 15:25:25 -07:00
encx24j600-regmap.c net: encx24j600: Fix invalid logic in reading of MISTAT register 2022-12-05 09:46:31 +00:00
encx24j600.c net: ethernet: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:26 -07:00
Kconfig net: lan743x: select FIXED_PHY 2023-07-09 11:23:47 +01:00
lan743x_ethtool.c net: lan743x: Add support to SGMII register dump for PCI11010/PCI11414 chips 2022-11-09 19:20:13 -08:00
lan743x_ethtool.h net: lan743x: Add support to SGMII register dump for PCI11010/PCI11414 chips 2022-11-09 19:20:13 -08:00
lan743x_main.c net: lan743x: Return PTR_ERR() for fixed_phy_register() 2023-08-20 15:13:27 +01:00
lan743x_main.h net: lan743x: add generic implementation for phy interface selection 2023-01-19 13:50:11 +01:00
lan743x_ptp.c ptp: lan743x: use diff_by_scaled_ppm in .adjfine implementation 2022-10-31 11:14:16 +00:00
lan743x_ptp.h net: lan743x: Add support for PTP-IO Event Output (Periodic Output) 2022-03-18 12:53:23 +00:00
Makefile net: microchip: sparx5: Adding initial tc flower support for VCAP API 2022-10-24 10:37:43 +01:00