siox: fix possible memory leak in siox_device_add()
[ Upstream commit6e63153db5
] If device_register() returns error in siox_device_add(), the name allocated by dev_set_name() need be freed. As comment of device_register() says, it should use put_device() to give up the reference in the error path. So fix this by calling put_device(), then the name can be freed in kobject_cleanup(), and sdevice is freed in siox_device_release(), set it to null in error path. Fixes:bbecb07fa0
("siox: new driver framework for eckelmann SIOX") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Link: https://lore.kernel.org/r/20221104021334.618189-1-yangyingliang@huawei.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
530e987a02
Коммит
5d03c2911c
|
@ -839,6 +839,8 @@ static struct siox_device *siox_device_add(struct siox_master *smaster,
|
||||||
|
|
||||||
err_device_register:
|
err_device_register:
|
||||||
/* don't care to make the buffer smaller again */
|
/* don't care to make the buffer smaller again */
|
||||||
|
put_device(&sdevice->dev);
|
||||||
|
sdevice = NULL;
|
||||||
|
|
||||||
err_buf_alloc:
|
err_buf_alloc:
|
||||||
siox_master_unlock(smaster);
|
siox_master_unlock(smaster);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче