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 |
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 --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;
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(-)