[PATCH xserver] composite: Make compIsAlternateVisual safe even if Composite is off

Aaron Plattner aplattner at nvidia.com
Fri Jul 28 00:27:51 UTC 2017


On 07/27/2017 01:02 PM, Adam Jackson wrote:
> As of ea483af9 we're calling this unconditionally from the GLX code so
> the synthetic visual is in a lower select group. If Composite has been
> disabled then GetCompScreen() will return NULL, and this would crash.
> 
> Rather than force the caller to check first, just always return FALSE if
> Composite is disabled (which is correct, since none of the visuals will
> be synthetic in that case).
> 
> Signed-off-by: Adam Jackson <ajax at redhat.com>
> ---
>   composite/compwindow.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/composite/compwindow.c b/composite/compwindow.c
> index 367f23eb7..f88238146 100644
> --- a/composite/compwindow.c
> +++ b/composite/compwindow.c
> @@ -326,7 +326,7 @@ compIsAlternateVisual(ScreenPtr pScreen, XID visual)
>       CompScreenPtr cs = GetCompScreen(pScreen);
>       int i;
>   
> -    for (i = 0; i < cs->numAlternateVisuals; i++)
> +    for (i = 0; cs && i < cs->numAlternateVisuals; i++)

I really hope gcc is smart enough to know that cs won't change here and 
this check can be hoisted out of the loop.

>           if (cs->alternateVisuals[i] == visual)
>               return TRUE;
>       return FALSE;
> 

Sure, can't hurt.

Reviewed-by: Aaron Plattner <aplattner at nvidia.com>

-- 
nvpublic


More information about the xorg-devel mailing list