diff options
| author | Chengfeng Ye <cyeaa@connect.ust.hk> | 2021-11-05 06:45:07 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-01-27 10:54:12 +0100 |
| commit | 240cf5d3cb5e4d3eb1b7abc83b54563fe992d306 (patch) | |
| tree | e426ed9afb6b5cbed9e902fc8e47f17d8ab29bd8 /drivers/hsi | |
| parent | f4295b7dca8751a4d150eadb95d33671818e37b4 (diff) | |
HSI: core: Fix return freed object in hsi_new_client
[ Upstream commit a1ee1c08fcd5af03187dcd41dcab12fd5b379555 ]
cl is freed on error of calling device_register, but this
object is return later, which will cause uaf issue. Fix it
by return NULL on error.
Signed-off-by: Chengfeng Ye <cyeaa@connect.ust.hk>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/hsi')
| -rw-r--r-- | drivers/hsi/hsi_core.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/hsi/hsi_core.c b/drivers/hsi/hsi_core.c index a5f92e2889cb..a330f58d45fc 100644 --- a/drivers/hsi/hsi_core.c +++ b/drivers/hsi/hsi_core.c @@ -102,6 +102,7 @@ struct hsi_client *hsi_new_client(struct hsi_port *port, if (device_register(&cl->device) < 0) { pr_err("hsi: failed to register client: %s\n", info->name); put_device(&cl->device); + goto err; } return cl; |
