[PATCH v4 1/3] auxdisplay: Add 7-segment LED display driver

Chris Packham Chris.Packham at alliedtelesis.co.nz
Tue Mar 5 14:34:08 PST 2024


On 6/03/24 03:57, Andy Shevchenko wrote:
> On Tue, Mar 05, 2024 at 09:23:07AM +0100, Geert Uytterhoeven wrote:
>> On Tue, Mar 5, 2024 at 4:59 AM Chris Packham
>> <chris.packham at alliedtelesis.co.nz> wrote:
> ...
>
>>> +       priv->segment_gpios = devm_gpiod_get_array(dev, "segment", GPIOD_OUT_LOW);
>>> +       if (IS_ERR(priv->segment_gpios))
>>> +               return PTR_ERR(priv->segment_gpios);
>> This needs some validation of priv->segment_gpios->ndescs, else the
>> call to gpiod_set_array_value_cansleep() in seg_led_update() may
>> trigger an out-of-bounds access of the values bitmap.
> Alternatively we can call gpiod_count() beforehand and check its result.
Unless there are any objections I think I'll go with the ndescs check as 
it'll be easier to update to the subnode style in the future. It does 
mean there will be some extra allocations/frees (handled via the devm_ 
APIs) in the error case.


More information about the linux-arm-kernel mailing list