mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
drivers: base: transport_class: fix possible memory leak
Current some drivers(like iscsi) call transport_register_device()
failed, they don't call transport_destroy_device() to release the
memory allocated in transport_setup_device(), because they don't
know what was done, it should be internal thing to release the
resource in register function. So fix this leak by calling destroy
function inside register function.
Fixes: 1da177e4c3
("Linux-2.6.12-rc2")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20221110102307.3492557-1-yangyingliang@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0d150f967e
commit
a863678038
@ -70,8 +70,14 @@ void transport_destroy_device(struct device *);
|
||||
static inline int
|
||||
transport_register_device(struct device *dev)
|
||||
{
|
||||
int ret;
|
||||
|
||||
transport_setup_device(dev);
|
||||
return transport_add_device(dev);
|
||||
ret = transport_add_device(dev);
|
||||
if (ret)
|
||||
transport_destroy_device(dev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline void
|
||||
|
Loading…
Reference in New Issue
Block a user