summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Yingliang <yangyingliang@huawei.com>2022-11-09 17:01:24 +0300
committerJens Wiklander <jens.wiklander@linaro.org>2022-11-17 11:22:12 +0300
commitcce616e012c215d65c15e5d1afa73182dea49389 (patch)
tree1e5cb49bb289324af1279594b7c0d561034fe482
parent094226ad94f471a9f19e8f8e7140a09c2625abaa (diff)
downloadlinux-cce616e012c215d65c15e5d1afa73182dea49389.tar.xz
tee: optee: fix possible memory leak in optee_register_device()
If device_register() returns error in optee_register_device(), 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 optee_device is freed in optee_release_device(). Fixes: c3fa24af9244 ("tee: optee: add TEE bus device enumeration support") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Reviewed-by: Sumit Garg <sumit.garg@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
-rw-r--r--drivers/tee/optee/device.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/tee/optee/device.c b/drivers/tee/optee/device.c
index f3947be13e2e..64f0e047c23d 100644
--- a/drivers/tee/optee/device.c
+++ b/drivers/tee/optee/device.c
@@ -80,7 +80,7 @@ static int optee_register_device(const uuid_t *device_uuid)
rc = device_register(&optee_device->dev);
if (rc) {
pr_err("device registration failed, err: %d\n", rc);
- kfree(optee_device);
+ put_device(&optee_device->dev);
}
return rc;