[edk2-devel] [edk2-platforms][PATCH 1/1] Platform/RPi: Prevent buffer over-read when the command line is empty

Leif Lindholm leif.lindholm at linaro.org
Thu Nov 7 18:09:37 UTC 2019


On Thu, Nov 07, 2019 at 05:35:27PM +0000, Pete Batard wrote:
> On 2019.11.07 17:27, Leif Lindholm wrote:
> > On Thu, Nov 07, 2019 at 05:05:20PM +0000, Pete Batard wrote:
> > > Hi Leif,
> > > 
> > > On 2019.11.07 16:21, Leif Lindholm wrote:
> > > > Patch looks good, but the term "command line" is a bit confusing.
> > > > 
> > > > I assume we're talking about whatever way parameters are passed from
> > > > pre-edk2 firmware to edk2, right?
> > > 
> > > Yes. This is basically what the Raspberry Pi VideoCore bootcode digests and
> > > passes as boot arguments to the ARM boot loader (i.e. our TF-A + EFI
> > > firmware executable). It contains options that the user may have set in
> > > their 'config.txt' as well as other data.
> > 
> > Sure.
> > 
> > > > Is there a more precise term for this?
> > > 
> > > Would "boot arguments" or "external boot arguments" work for you? Or if you
> > > prefer "(external) boot parameters" should be applicable too.
> > 
> > Either would be fine - I was just hoping there might be a recognized
> > standard name for them :)
> 
> Well, as far as I know, the recognized standard name is "commandline" as per
> https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md
> 
> For instance there exists an option called disable_commandline_tags which
> pertains to what we are talking about.

Right. I meant something non-context-dependent. Nevermind :)

> > So, I could update the subject line to
> > Platform/RPi: Prevent external boot arguments over-read
> > in order to keep it short, and change "command line" in the commit
> > message body to "external boot arguments" - does that work for you?
> 
> If you can do that, that's great. Thanks!

Done. And with that:
Reviewed-by: Leif Lindholm <leif.lindholm at linaro.org>
Pushed as 92f06ccddfcf. 

Thanks!

/
    Leif

> /Pete
> 
> > 
> > Regards,
> > 
> > Leif
> > 
> > > Regards,
> > > 
> > > /Pete
> > > 
> > > > 
> > > > /
> > > >       Leif
> > > > 
> > > > On Mon, Nov 04, 2019 at 04:06:17PM +0000, Pete Batard wrote:
> > > > > From: Andrei Warkentin <andrey.warkentin at gmail.com>
> > > > > 
> > > > > It is possible for the command line to be empty
> > > > > (Cmd->TagHead.TagValueSize = 0), in which case the code should not
> > > > > attempt to read the value at CommandLine[-1].
> > > > > 
> > > > > Signed-off-by: Pete Batard <pete at akeo.ie>
> > > > > ---
> > > > >    Platform/RaspberryPi/Drivers/RpiFirmwareDxe/RpiFirmwareDxe.c | 3 ++-
> > > > >    1 file changed, 2 insertions(+), 1 deletion(-)
> > > > > 
> > > > > diff --git a/Platform/RaspberryPi/Drivers/RpiFirmwareDxe/RpiFirmwareDxe.c b/Platform/RaspberryPi/Drivers/RpiFirmwareDxe/RpiFirmwareDxe.c
> > > > > index 5a9d4c3f1787..9b4aa068857c 100644
> > > > > --- a/Platform/RaspberryPi/Drivers/RpiFirmwareDxe/RpiFirmwareDxe.c
> > > > > +++ b/Platform/RaspberryPi/Drivers/RpiFirmwareDxe/RpiFirmwareDxe.c
> > > > > @@ -927,7 +927,8 @@ RpiFirmwareGetCommmandLine (
> > > > >      CopyMem (CommandLine, Cmd->CommandLine, Cmd->TagHead.TagValueSize);
> > > > > -  if (CommandLine[Cmd->TagHead.TagValueSize - 1] != '\0') {
> > > > > +  if (Cmd->TagHead.TagValueSize == 0 ||
> > > > > +      CommandLine[Cmd->TagHead.TagValueSize - 1] != '\0') {
> > > > >        //
> > > > >        // Add a NUL terminator if required.
> > > > >        //
> > > > > -- 
> > > > > 2.21.0.windows.1
> > > > > 
> > > 
> 

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#50255): https://edk2.groups.io/g/devel/message/50255
Mute This Topic: https://groups.io/mt/41265683/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list