On 29/11/2019 10:13, Jan Beulich wrote:
> The switch of guest_console_write()'s second parameter from plain to
> unsigned int has caused the function's main loop header to no longer
> guard the min_t() use within the function against effectively negative
> values, due to the casts hidden inside the macro. Replace by a plain
> min(), converting one of the arguments suitably without involving any
> cast.
>
> Fixes: ea601ec9995b ("xen/console: Rework HYPERCALL_console_io interface")
> Reported-by: Ilja Van Sprundel <ivansprun...@ioactive.com>
> Signed-off-by: Jan Beulich <jbeul...@suse.com>
>
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -538,7 +538,7 @@ static long guest_console_write(XEN_GUES
>                  __HYPERVISOR_console_io, "iih",
>                  CONSOLEIO_write, count, buffer);
>  
> -        kcount = min_t(int, count, sizeof(kbuf)-1);
> +        kcount = min(count + sizeof(char[0]), sizeof(kbuf) - 1);

Is sizeof(array[0]) always 0, or is this just a GCC-ism ?  Godbolt
suggests is 0 on all compiler we support.

Either way, isn't the more common idiom + 0ul ?  Personally, I feel that
is clearer to follow.

That said, given the severity and urgency of this
extremely-lucky-its-not-an-XSA, Reviewed-by: Andrew Cooper
<andrew.coop...@citrix.com>, but ideally using the +0ul form.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to