On Wed, Mar 6, 2024 at 12:34 AM Chris Packham <Chris.Packham@xxxxxxxxxxxxxxxxxxx> wrote: > 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@xxxxxxxxxxxxxxxxxxx> 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. Either works for me. > It does > mean there will be some extra allocations/frees (handled via the devm_ > APIs) in the error case. -- With Best Regards, Andy Shevchenko