Re: [PATCH] coretemp: Check for null before removing sysfs attrs
From: Guenter Roeck
Date: Sun Nov 20 2022 - 08:50:06 EST
On Thu, Nov 17, 2022 at 11:23:13AM -0500, Phil Auld wrote:
> If coretemp_add_core() gets an error then pdata->core_data[indx]
> is already NULL and has been kfreed. Don't pass that to
> sysfs_remove_group() as that will crash in sysfs_remove_group().
>
> [Shortened for readability]
> [91854.020159] sysfs: cannot create duplicate filename '/devices/platform/coretemp.0/hwmon/hwmon2/temp20_label'
> <cpu offline>
> [91855.126115] BUG: kernel NULL pointer dereference, address: 0000000000000188
> [91855.165103] #PF: supervisor read access in kernel mode
> [91855.194506] #PF: error_code(0x0000) - not-present page
> [91855.224445] PGD 0 P4D 0
> [91855.238508] Oops: 0000 [#1] PREEMPT SMP PTI
> ...
> [91855.342716] RIP: 0010:sysfs_remove_group+0xc/0x80
> ...
> [91855.796571] Call Trace:
> [91855.810524] coretemp_cpu_offline+0x12b/0x1dd [coretemp]
> [91855.841738] ? coretemp_cpu_online+0x180/0x180 [coretemp]
> [91855.871107] cpuhp_invoke_callback+0x105/0x4b0
> [91855.893432] cpuhp_thread_fun+0x8e/0x150
> ...
>
> Fix this by checking for NULL first.
>
> Signed-off-by: Phil Auld <pauld@xxxxxxxxxx>
> Cc: linux-hwmon@xxxxxxxxxxxxxxx
> Cc: Fenghua Yu <fenghua.yu@xxxxxxxxx>
> Cc: Jean Delvare <jdelvare@xxxxxxxx>
> Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Applied.
Thanks,
Guenter