]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
memstick: fix a double-free bug in memstick_check
authorQinglang Miao <miaoqinglang@huawei.com>
Fri, 20 Nov 2020 07:48:46 +0000 (15:48 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Dec 2020 10:25:56 +0000 (11:25 +0100)
[ Upstream commit e3e9ced5c93803d5b2ea1942c4bf0192622531d6 ]

kfree(host->card) has been called in put_device so that
another kfree would raise cause a double-free bug.

Fixes: 0193383a5833 ("memstick: core: fix device_register() error handling")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Qinglang Miao <miaoqinglang@huawei.com>
Link: https://lore.kernel.org/r/20201120074846.31322-1-miaoqinglang@huawei.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/memstick/core/memstick.c

index b1564cacd19e1b86dc26fabe945b4c892e5f4e40..20ae8652adf4484f6ff2b4e71320332705225694 100644 (file)
@@ -469,7 +469,6 @@ static void memstick_check(struct work_struct *work)
                        host->card = card;
                        if (device_register(&card->dev)) {
                                put_device(&card->dev);
-                               kfree(host->card);
                                host->card = NULL;
                        }
                } else