summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruanjinjie <ruanjinjie@huawei.com>2022-11-17 14:47:25 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-11-23 19:55:26 +0100
commitfd2c930cf6a5b9176382c15f9acb1996e76e25ad (patch)
tree6f42ca08b5108900284b34a79ab2c536381e6a69
parent1dbb4f0235a450f22e518124cbf9b922802ce38f (diff)
misc: tifm: fix possible memory leak in tifm_7xx1_switch_media()
If device_register() returns error in tifm_7xx1_switch_media(), name of kobject which is allocated in dev_set_name() called in device_add() is leaked. Never directly free @dev after calling device_register(), even if it returned an error! Always use put_device() to give up the reference initialized. Fixes: 2428a8fe2261 ("tifm: move common device management tasks from tifm_7xx1 to tifm_core") Signed-off-by: ruanjinjie <ruanjinjie@huawei.com> Link: https://lore.kernel.org/r/20221117064725.3478402-1-ruanjinjie@huawei.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/misc/tifm_7xx1.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/misc/tifm_7xx1.c b/drivers/misc/tifm_7xx1.c
index 017c2f7d6287..7dd86a9858ab 100644
--- a/drivers/misc/tifm_7xx1.c
+++ b/drivers/misc/tifm_7xx1.c
@@ -190,7 +190,7 @@ static void tifm_7xx1_switch_media(struct work_struct *work)
spin_unlock_irqrestore(&fm->lock, flags);
}
if (sock)
- tifm_free_device(&sock->dev);
+ put_device(&sock->dev);
}
spin_lock_irqsave(&fm->lock, flags);
}