[PATCH] mtd: spi: Add missing free in sf_get_bootflow

Simon Glass sjg at chromium.org
Fri Feb 13 18:53:25 CET 2026


Hi Tom,

On Fri, 13 Feb 2026 at 09:57, Tom Rini <trini at konsulko.com> wrote:
>
> On Tue, Dec 09, 2025 at 08:17:06AM -0600, Tom Rini wrote:
> > On Tue, Dec 09, 2025 at 12:16:33PM +0200, Tudor Ambarus wrote:
> > >
> > >
> > > On 12/9/25 11:56 AM, Francois Berder wrote:
> > > > Free buf if spi_flash_read_dm fails.
> > > >
> > > > Signed-off-by: Francois Berder <fberder at outlook.fr>
> > > > ---
> > > >  drivers/mtd/spi/sf_bootdev.c | 4 +++-
> > > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/mtd/spi/sf_bootdev.c b/drivers/mtd/spi/sf_bootdev.c
> > > > index 017a74a3016..720faf51a1f 100644
> > > > --- a/drivers/mtd/spi/sf_bootdev.c
> > > > +++ b/drivers/mtd/spi/sf_bootdev.c
> > > > @@ -35,8 +35,10 @@ static int sf_get_bootflow(struct udevice *dev, struct bootflow_iter *iter,
> > > >
> > > >   ret = spi_flash_read_dm(sf, env_get_hex("script_offset_f", 0),
> > > >                           size, buf);
> > > > - if (ret)
> > > > + if (ret) {
> > > > +         free(buf);
> > > >           return log_msg_ret("cmd", -EINVAL);
> > > > + }
> > >
> > >
> > > can we use a devm alloc method to get rid of the extra free handling?
> >
> > No, because this isn't the kernel and devm alloc doesn't always free
> > here. Making that no longer be the case (always freeing) is on my list
> > to look at doing (drivers that use devm alloc always implys/select'ing
> > DEVRES).
>
> We've since changed so that devm alloc does behave in U-Boot the same as
> the kernel (except in xPL phases), so Tudor's suggestion is a good one.

I still like the idea of having this patch so that others don't hit
it. Does it show up as a leak on any code-analysis?

Reviewed-by: Simon Glass <simon.glass at canonical.com>

Regards,
Simon


More information about the U-Boot mailing list