[SLOF] [PATCH v2 02/11] obp-tftp: Make sure to not overwrite paflof in memory

Greg Kurz groug at kaod.org
Wed May 23 01:01:01 AEST 2018


On Fri, 18 May 2018 17:45:31 +0200
Thomas Huth <thuth at redhat.com> wrote:

> The obp-tftp package is currently using an arbitrary large value
> as maximal load size. If the downloaded file is big enough, we
> can easily erase Paflof in memory this way. Let's make sure that
> this can not happen by limiting the size to the amount of memory
> below the Paflof binary (which is close to the end of the RAM)
> in case of board-qemu, or the amount of memory between the minimum
> RAM size and the load-base on board-js2x.
> 
> Signed-off-by: Thomas Huth <thuth at redhat.com>
> ---
>  slof/fs/packages/obp-tftp.fs | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/slof/fs/packages/obp-tftp.fs b/slof/fs/packages/obp-tftp.fs
> index 19c11e1..7236624 100644
> --- a/slof/fs/packages/obp-tftp.fs
> +++ b/slof/fs/packages/obp-tftp.fs
> @@ -24,7 +24,13 @@ s" obp-tftp" device-name
>      my-parent ihandle>phandle node>path encode-string
>      s" bootpath" set-chosen
>  
> -    60000000                        ( addr maxlen )
> +    \ Determine the maximum size that we can load:
> +    dup paflof-start < IF
> +        paflof-start
> +    ELSE
> +        MIN-RAM-SIZE

Hmm... IIUC this is a size, not an address...

> +    THEN                                  ( addr endaddr )
> +    over -                                ( addr maxlen )
>  

... so we should rather have this, shouldn't we ?

    \ Determine the maximum size that we can load:
    dup paflof-start < IF
        paflof-start
        over -
    ELSE
        MIN-RAM-SIZE
    THEN                                  ( addr maxlen )

>      \ Add OBP-TFTP Bootstring argument, e.g. "10.128.0.1,bootrom.bin,10.128.40.1"
>      my-args



More information about the SLOF mailing list