Commit e2a87785 authored by Gaosheng Cui's avatar Gaosheng Cui Committed by Guenter Roeck

hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails

Smatch report warning as follows:

drivers/hwmon/ibmpex.c:509 ibmpex_register_bmc() warn:
  '&data->list' not removed from list

If ibmpex_find_sensors() fails in ibmpex_register_bmc(), data will
be freed, but data->list will not be removed from driver_data.bmc_data,
then list traversal may cause UAF.

Fix by removeing it from driver_data.bmc_data before free().

Fixes: 57c7c3a0 ("hwmon: IBM power meter driver")
Signed-off-by: default avatarGaosheng Cui <cuigaosheng1@huawei.com>
Link: https://lore.kernel.org/r/20221117034423.2935739-1-cuigaosheng1@huawei.comSigned-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 3b7f98f2
...@@ -502,6 +502,7 @@ static void ibmpex_register_bmc(int iface, struct device *dev) ...@@ -502,6 +502,7 @@ static void ibmpex_register_bmc(int iface, struct device *dev)
return; return;
out_register: out_register:
list_del(&data->list);
hwmon_device_unregister(data->hwmon_dev); hwmon_device_unregister(data->hwmon_dev);
out_user: out_user:
ipmi_destroy_user(data->user); ipmi_destroy_user(data->user);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment