Re: [PATCH v6 24/26] powerpc/pseries: Implement secvars for dynamic secure boot

From: Andrew Donnellan
Date: Mon Feb 13 2023 - 02:07:34 EST


On Mon, 2023-02-13 at 16:26 +1100, Michael Ellerman wrote:
> Andrew Donnellan <ajd@xxxxxxxxxxxxx> writes:
> > On Fri, 2023-02-10 at 16:28 -0500, Stefan Berger wrote:
> > > > > +err:
> > > > > +    kfree(var.data);
> > > >
> > > > remove the kfree()
> > >
> > > Actually don't remove it but it should probably be
> > >
> > > if (var.data != &version)
> > >      kfree(var.data);
> > >
> >
> > Argh, thanks for catching this.
> >
> > I don't think the condition is needed - we can assume the var.data
> > is
> > unmodified.
> >
> > mpe, are you able to fix this up in merge?
>
> Yeah, can you reply here with the delta you want applied.
>
> cheers


diff --git a/arch/powerpc/platforms/pseries/plpks-secvar.c
b/arch/powerpc/platforms/pseries/plpks-secvar.c
index 98d0f2b31e0d..bdfe63bc8705 100644
--- a/arch/powerpc/platforms/pseries/plpks-secvar.c
+++ b/arch/powerpc/platforms/pseries/plpks-secvar.c
@@ -135,7 +135,7 @@ static int plpks_set_variable(const char *key, u64
key_len, u8 *data,
goto err;
var.namelen = rc * 2;

- memcpy(&flags, data, sizeof(flags));
+ flags = cpu_to_be64p((__u64 *)data);

var.datalen = data_size - sizeof(flags);
var.data = data + sizeof(flags);
@@ -184,7 +184,6 @@ static ssize_t plpks_secvar_format(char *buf,
size_t bufsize)
ret = snprintf(buf, bufsize, "ibm,plpks-sb-v%hhu", version);

err:
- kfree(var.data);
return ret;
}




--
Andrew Donnellan OzLabs, ADL Canberra
ajd@xxxxxxxxxxxxx IBM Australia Limited