hwmon: (hp-wmi-sensors) Initialize pevents in hp_wmi_sensors_init()
authorJames Seo <james@equiv.tech>
Tue, 25 Jul 2023 09:48:17 +0000 (02:48 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 21 Aug 2023 13:04:30 +0000 (06:04 -0700)
The following warning is given by the Smatch static checker:

  drivers/hwmon/hp-wmi-sensors.c:1937 hp_wmi_sensors_init()
  error: uninitialized symbol 'pevents'.

If there are no instances of the HPBIOS_PlatformEvents WMI object
available, init_platform_events() never initializes this pointer,
which may then be passed to hp_wmi_debugfs_init() uninitialized.

The impact should be limited because hp_wmi_debugfs_init() uses this
pointer only if the count of HPBIOS_PlatformEvents instances is _not_
zero, while conversely, it will be uninitialized only if the count of
such instances _is_ zero. However, passing it uninitialized still
constitutes a bug.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/linux-hwmon/f72c129b-8c57-406a-bf41-bd889b65ea0f@moroto.mountain/
Signed-off-by: James Seo <james@equiv.tech>
Link: https://lore.kernel.org/r/20230725094817.588640-1-james@equiv.tech
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/hp-wmi-sensors.c

index 3a99cc5..17ae62f 100644 (file)
@@ -1913,7 +1913,7 @@ static bool add_event_handler(struct hp_wmi_sensors *state)
 static int hp_wmi_sensors_init(struct hp_wmi_sensors *state)
 {
        struct hp_wmi_info *connected[HP_WMI_MAX_INSTANCES];
-       struct hp_wmi_platform_events *pevents;
+       struct hp_wmi_platform_events *pevents = NULL;
        struct device *dev = &state->wdev->dev;
        struct hp_wmi_info *info;
        struct device *hwdev;