diff mbox series

hwmon: (hp-wmi-sensors) Initialize pevents in hp_wmi_sensors_init()

Message ID 20230725094817.588640-1-james@equiv.tech (mailing list archive)
State Accepted
Headers show
Series hwmon: (hp-wmi-sensors) Initialize pevents in hp_wmi_sensors_init() | expand

Commit Message

James Seo July 25, 2023, 9:48 a.m. UTC
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>
---
 drivers/hwmon/hp-wmi-sensors.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: 55612007f16b5d7b1fb83a7b0f5bb686829db7c7

Comments

Guenter Roeck July 25, 2023, 3:10 p.m. UTC | #1
On Tue, Jul 25, 2023 at 02:48:17AM -0700, James Seo wrote:
> 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>

Applied.

Thanks,
Guenter

> ---
>  drivers/hwmon/hp-wmi-sensors.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> 
> base-commit: 55612007f16b5d7b1fb83a7b0f5bb686829db7c7
> 
> diff --git a/drivers/hwmon/hp-wmi-sensors.c b/drivers/hwmon/hp-wmi-sensors.c
> index 3a99cc5f44b2..17ae62f88bbf 100644
> --- a/drivers/hwmon/hp-wmi-sensors.c
> +++ b/drivers/hwmon/hp-wmi-sensors.c
> @@ -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;
Guenter Roeck July 25, 2023, 3:12 p.m. UTC | #2
On Tue, Jul 25, 2023 at 02:48:17AM -0700, James Seo wrote:
> 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>

Applied.

Thanks,
Guenter

> ---
>  drivers/hwmon/hp-wmi-sensors.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> 
> base-commit: 55612007f16b5d7b1fb83a7b0f5bb686829db7c7
> 
> diff --git a/drivers/hwmon/hp-wmi-sensors.c b/drivers/hwmon/hp-wmi-sensors.c
> index 3a99cc5f44b2..17ae62f88bbf 100644
> --- a/drivers/hwmon/hp-wmi-sensors.c
> +++ b/drivers/hwmon/hp-wmi-sensors.c
> @@ -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;
diff mbox series

Patch

diff --git a/drivers/hwmon/hp-wmi-sensors.c b/drivers/hwmon/hp-wmi-sensors.c
index 3a99cc5f44b2..17ae62f88bbf 100644
--- a/drivers/hwmon/hp-wmi-sensors.c
+++ b/drivers/hwmon/hp-wmi-sensors.c
@@ -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;