diff mbox series

pwm: lp3943: Fix signedness bug in lp3943_pwm_parse_dt()

Message ID 5e74df19-4469-4a10-8b87-e918769a2f9f@stanley.mountain
State Not Applicable
Headers show
Series pwm: lp3943: Fix signedness bug in lp3943_pwm_parse_dt() | expand

Commit Message

Dan Carpenter Aug. 12, 2024, 6:43 a.m. UTC
The "num_outputs" variable needs to be signed for the error checking for
of_property_count_u32_elems() to work correctly.  If the property is not
present then we're supposed to continue, but in the current code we will
try to allocate negative bytes, which will fail and it returns -ENOMEM.

Fixes: d6a56f3bb650 ("pwm: lp3943: Use of_property_count_u32_elems() to get property length")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
---
 drivers/pwm/pwm-lp3943.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Uwe Kleine-König Sept. 3, 2024, 4:48 p.m. UTC | #1
On Mon, Aug 12, 2024 at 09:43:11AM +0300, Dan Carpenter wrote:
> The "num_outputs" variable needs to be signed for the error checking for
> of_property_count_u32_elems() to work correctly.  If the property is not
> present then we're supposed to continue, but in the current code we will
> try to allocate negative bytes, which will fail and it returns -ENOMEM.
> 
> Fixes: d6a56f3bb650 ("pwm: lp3943: Use of_property_count_u32_elems() to get property length")
> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
> ---
>  drivers/pwm/pwm-lp3943.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/pwm/pwm-lp3943.c b/drivers/pwm/pwm-lp3943.c
> index f0e94c9e5956..803ecd6435cc 100644
> --- a/drivers/pwm/pwm-lp3943.c
> +++ b/drivers/pwm/pwm-lp3943.c
> @@ -219,7 +219,7 @@ static int lp3943_pwm_parse_dt(struct device *dev,
>  	struct lp3943_pwm_map *pwm_map;
>  	enum lp3943_pwm_output *output;
>  	int i, err, count = 0;
> -	u32 num_outputs;
> +	int num_outputs;
>  
>  	if (!node)
>  		return -EINVAL;

This issue is fixed since next-20240812 with the similar commit
adef9a535479 ("pwm: lp3943: Fix an incorrect type in
lp3943_pwm_parse_dt()"). (Up to next-20240830 the commit id was
861a4272660a, I rewrote that commit because I got the Fixes line wrong.)

For this reason I marked this patch as "Not Applicable" in patchwork.

Best regards
Uwe
diff mbox series

Patch

diff --git a/drivers/pwm/pwm-lp3943.c b/drivers/pwm/pwm-lp3943.c
index f0e94c9e5956..803ecd6435cc 100644
--- a/drivers/pwm/pwm-lp3943.c
+++ b/drivers/pwm/pwm-lp3943.c
@@ -219,7 +219,7 @@  static int lp3943_pwm_parse_dt(struct device *dev,
 	struct lp3943_pwm_map *pwm_map;
 	enum lp3943_pwm_output *output;
 	int i, err, count = 0;
-	u32 num_outputs;
+	int num_outputs;
 
 	if (!node)
 		return -EINVAL;