linux/drivers/net
Wang Hai 960a216b07 libertas: Fix possible memory leak in probe and disconnect
[ Upstream commit 9692151e2f ]

I got memory leak as follows when doing fault injection test:

unreferenced object 0xffff88812c7d7400 (size 512):
  comm "kworker/6:1", pid 176, jiffies 4295003332 (age 822.830s)
  hex dump (first 32 bytes):
    00 68 1e 04 81 88 ff ff 01 00 00 00 00 00 00 00  .h..............
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [<ffffffff8167939c>] slab_post_alloc_hook+0x9c/0x490
    [<ffffffff8167f627>] kmem_cache_alloc_trace+0x1f7/0x470
    [<ffffffffa02c9873>] if_usb_probe+0x63/0x446 [usb8xxx]
    [<ffffffffa022668a>] usb_probe_interface+0x1aa/0x3c0 [usbcore]
    [<ffffffff82b59630>] really_probe+0x190/0x480
    [<ffffffff82b59a19>] __driver_probe_device+0xf9/0x180
    [<ffffffff82b59af3>] driver_probe_device+0x53/0x130
    [<ffffffff82b5a075>] __device_attach_driver+0x105/0x130
    [<ffffffff82b55949>] bus_for_each_drv+0x129/0x190
    [<ffffffff82b593c9>] __device_attach+0x1c9/0x270
    [<ffffffff82b5a250>] device_initial_probe+0x20/0x30
    [<ffffffff82b579c2>] bus_probe_device+0x142/0x160
    [<ffffffff82b52e49>] device_add+0x829/0x1300
    [<ffffffffa02229b1>] usb_set_configuration+0xb01/0xcc0 [usbcore]
    [<ffffffffa0235c4e>] usb_generic_driver_probe+0x6e/0x90 [usbcore]
    [<ffffffffa022641f>] usb_probe_device+0x6f/0x130 [usbcore]

cardp is missing being freed in the error handling path of the probe
and the path of the disconnect, which will cause memory leak.

This patch adds the missing kfree().

Fixes: 876c9d3aeb ("[PATCH] Marvell Libertas 8388 802.11b/g USB driver")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wang Hai <wanghai38@huawei.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20211020120345.2016045-3-wanghai38@huawei.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-11-18 19:16:42 +01:00
..
appletalk
arcnet
bonding
caif
can can: bittiming: can_fixup_bittiming(): change type of tseg1 and alltseg to unsigned int 2021-11-18 19:16:19 +01:00
dsa net: dsa: rtl8366: Fix a bug in deleting VLANs 2021-11-18 19:16:26 +01:00
ethernet net: enetc: unmap DMA in enetc_send_cmd() 2021-11-18 19:16:38 +01:00
fddi
fjes
hamradio hamradio: baycom_epp: fix build for UML 2021-10-18 12:57:42 +01:00
hippi
hyperv
ieee802154
ipa asm-generic: build fixes for v5.15 2021-10-08 11:57:54 -07:00
ipvlan
mctp
mdio
netdevsim
pcs
phy phy: micrel: ksz8041nl: do not use power down mode 2021-11-18 19:16:38 +01:00
plip
ppp
slip
team
usb usbnet: fix error return code in usbnet_probe() 2021-10-27 12:06:15 -07:00
vmxnet3 vmxnet3: do not stop tx queues after netif_device_detach() 2021-10-28 12:51:17 +01:00
wan
wireguard
wireless libertas: Fix possible memory leak in probe and disconnect 2021-11-18 19:16:42 +01:00
wwan
xen-netback
bareudp.c
dummy.c
eql.c
geneve.c
gtp.c
ifb.c ifb: fix building without CONFIG_NET_CLS_ACT 2021-11-18 19:16:04 +01:00
Kconfig ifb: Depend on netfilter alternatively to tc 2021-11-18 19:15:58 +01:00
LICENSE.SRC
loopback.c
macsec.c
macvlan.c
macvtap.c
Makefile
mdio.c
mhi_net.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c
veth.c
virtio_net.c virtio-net: fix for skb_over_panic inside big mode 2021-10-09 13:50:33 +01:00
vrf.c vrf: run conntrack only in context of lower/physdev for locally generated packets 2021-11-18 19:16:19 +01:00
vsockmon.c
vxlan.c
xen-netfront.c xen/netfront: stop tx queues during live migration 2021-10-25 16:13:12 +01:00