diff options
| author | Yang Yingliang <[email protected]> | 2022-12-08 15:19:16 +0000 |
|---|---|---|
| committer | Hans de Goede <[email protected]> | 2022-12-08 16:35:49 +0000 |
| commit | 0b3d0cb7c0bed2fd6454f77ed75e7a662c6efd12 (patch) | |
| tree | 31ecfe1bf308d72ce285ba88dca922e68993dcb8 /drivers/platform/x86/intel_scu_ipc.c | |
| parent | platform/x86: sony-laptop: Convert to use sysfs_emit_at() API (diff) | |
| download | kernel-0b3d0cb7c0bed2fd6454f77ed75e7a662c6efd12.tar.gz kernel-0b3d0cb7c0bed2fd6454f77ed75e7a662c6efd12.zip | |
platform/x86: intel_scu_ipc: fix possible name leak in __intel_scu_ipc_register()
In some error paths before device_register(), the names allocated
by dev_set_name() are not freed. Move dev_set_name() front to
device_register(), so the name can be freed while calling
put_device().
Fixes: 54b34aa0a729 ("platform/x86: intel_scu_ipc: Split out SCU IPC functionality from the SCU driver")
Signed-off-by: Yang Yingliang <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Reviewed-by: Hans de Goede <[email protected]>
Signed-off-by: Hans de Goede <[email protected]>
Diffstat (limited to 'drivers/platform/x86/intel_scu_ipc.c')
| -rw-r--r-- | drivers/platform/x86/intel_scu_ipc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/platform/x86/intel_scu_ipc.c b/drivers/platform/x86/intel_scu_ipc.c index 7cc9089d1e14..e7a3e3402817 100644 --- a/drivers/platform/x86/intel_scu_ipc.c +++ b/drivers/platform/x86/intel_scu_ipc.c @@ -583,7 +583,6 @@ __intel_scu_ipc_register(struct device *parent, scu->dev.parent = parent; scu->dev.class = &intel_scu_ipc_class; scu->dev.release = intel_scu_ipc_release; - dev_set_name(&scu->dev, "intel_scu_ipc"); if (!request_mem_region(scu_data->mem.start, resource_size(&scu_data->mem), "intel_scu_ipc")) { @@ -612,6 +611,7 @@ __intel_scu_ipc_register(struct device *parent, * After this point intel_scu_ipc_release() takes care of * releasing the SCU IPC resources once refcount drops to zero. */ + dev_set_name(&scu->dev, "intel_scu_ipc"); err = device_register(&scu->dev); if (err) { put_device(&scu->dev); |
