Skip to content

Commit 5d03c29

Browse files
Yang Yinglianggregkh
authored andcommitted
siox: fix possible memory leak in siox_device_add()
[ Upstream commit 6e63153 ] 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: bbecb07 ("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>
1 parent 530e987 commit 5d03c29

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

drivers/siox/siox-core.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -839,6 +839,8 @@ static struct siox_device *siox_device_add(struct siox_master *smaster,
839839

840840
err_device_register:
841841
/* don't care to make the buffer smaller again */
842+
put_device(&sdevice->dev);
843+
sdevice = NULL;
842844

843845
err_buf_alloc:
844846
siox_master_unlock(smaster);

0 commit comments

Comments
 (0)