[Nouveau] [PATCH mesa 1/3] nv30: Fix max width / height checks in nv30 sifm code

Ilia Mirkin imirkin at alum.mit.edu
Mon Sep 7 12:52:36 PDT 2015


Yeah, I noticed this was odd too when looking over the code earlier.
Glad you picked up on that as well.

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>

On Mon, Sep 7, 2015 at 3:50 PM, Hans de Goede <hdegoede at redhat.com> wrote:
> The sifm object has a limit of 1024x1024 for its input size and 2048x2048
> for its output. The code checking this was trying to be clever resulting
> in it seeing a surface of e.g 1024x256 being outside of the input size
> limit.
>
> This commit fixes this.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
>  src/gallium/drivers/nouveau/nv30/nv30_transfer.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_transfer.c b/src/gallium/drivers/nouveau/nv30/nv30_transfer.c
> index 214da65..2452071 100644
> --- a/src/gallium/drivers/nouveau/nv30/nv30_transfer.c
> +++ b/src/gallium/drivers/nouveau/nv30/nv30_transfer.c
> @@ -371,7 +371,7 @@ nv30_transfer_rect_blit(XFER_ARGS)
>  static bool
>  nv30_transfer_sifm(XFER_ARGS)
>  {
> -   if (!src->pitch || (src->w | src->h) > 1024 || src->w < 2 || src->h < 2)
> +   if (!src->pitch || src->w > 1024 || src->h > 1024 || src->w < 2 || src->h < 2)
>        return false;
>
>     if (src->d > 1 || dst->d > 1)
> @@ -381,7 +381,7 @@ nv30_transfer_sifm(XFER_ARGS)
>        return false;
>
>     if (!dst->pitch) {
> -      if ((dst->w | dst->h) > 2048 || dst->w < 2 || dst->h < 2)
> +      if (dst->w > 2048 || dst->h > 2048 || dst->w < 2 || dst->h < 2)
>           return false;
>     } else {
>        if (dst->domain != NOUVEAU_BO_VRAM)
> --
> 2.4.3
>


More information about the Nouveau mailing list