[SLOF] [PATCH] instance: Fix set-my-args for empty arguments

Thomas Huth thuth at redhat.com
Thu Jun 9 02:02:54 AEST 2016


On 08.06.2016 11:35, Benjamin Herrenschmidt wrote:
> It would put the pointer and len in the wrong order in the instance>args
> buffer.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> ---
>  slof/fs/instance.fs | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/slof/fs/instance.fs b/slof/fs/instance.fs
> index 9e5c921..225a2bf 100644
> --- a/slof/fs/instance.fs
> +++ b/slof/fs/instance.fs
> @@ -134,7 +134,7 @@ CONSTANT <instancevariable>
>        2dup my-self instance>args 2!   \ | write into instance struct  ( old-addr len new-addr )
>        swap move                       \ | and copy the args           ( )
>     ELSE                               \ ELSE                          ( old-addr len )
> -      my-self instance>args 2!        \ | set new args to zero, too   ( )
> +      swap my-self instance>args 2!   \ | set new args to zero, too   ( )
>     THEN                               \ FI
>  ;

You're right, the old code stored the address and length in the wrong
order into instance>args and instance>args-len. However, the code likely
simply expected to write zeros to both fields instead, so maybe it is
better to do this instead:

	nip 0 my-self instance>args 2!

... that way you'd make sure that instance>args never contains a bogus
pointer if instance>args-len is 0.

 Thomas



More information about the SLOF mailing list