[Mesa-dev] [PATCH] glx: Fix image size computation for EXT_texture_integer

Ian Romanick idr at freedesktop.org
Fri Dec 12 13:25:03 PST 2014


Looking at src/glx/glxextensions.c (the known_glx_extensions array
specifically), I don't think we support GL_EXT_texture_integer on the
client side for indirect rendering.  So... do we actually need this patch?

On 12/12/2014 10:34 AM, Adam Jackson wrote:
> Without this, this extension basically can't work in indirect contexts,
> TexImage2D will compute the image size as 0 and we'll send no image data
> to the server.  Old servers would do undefined things upon receipt of
> such a teximage; new servers with the fix for CVE-2014-8098 will correctly
> reject the request without this patch.
> 
> This is the client-side equivalent of:
> 
> http://cgit.freedesktop.org/xorg/xserver/commit/?id=13d36923e0ddb077f4854e354c3d5c80590b5d9d
> 
> Signed-off-by: Adam Jackson <ajax at redhat.com>
> ---
>  src/glx/compsize.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/src/glx/compsize.c b/src/glx/compsize.c
> index 99c7763..8055919 100644
> --- a/src/glx/compsize.c
> +++ b/src/glx/compsize.c
> @@ -65,6 +65,8 @@ __glElementsPerGroup(GLenum format, GLenum type)
>     switch (format) {
>     case GL_RGB:
>     case GL_BGR:
> +   case GL_RGB_INTEGER_EXT:
> +   case GL_BGR_INTEGER_EXT:
>        return 3;
>     case GL_RG:
>     case GL_422_EXT:
> @@ -74,10 +76,13 @@ __glElementsPerGroup(GLenum format, GLenum type)
>     case GL_DEPTH_STENCIL_NV:
>     case GL_YCBCR_422_APPLE:
>     case GL_LUMINANCE_ALPHA:
> +   case GL_LUMINANCE_ALPHA_INTEGER_EXT:
>        return 2;
>     case GL_RGBA:
>     case GL_BGRA:
>     case GL_ABGR_EXT:
> +   case GL_RGBA_INTEGER_EXT:
> +   case GL_BGRA_INTEGER_EXT:
>        return 4;
>     case GL_COLOR_INDEX:
>     case GL_STENCIL_INDEX:
> @@ -88,6 +93,11 @@ __glElementsPerGroup(GLenum format, GLenum type)
>     case GL_ALPHA:
>     case GL_LUMINANCE:
>     case GL_INTENSITY:
> +   case GL_RED_INTEGER_EXT:
> +   case GL_GREEN_INTEGER_EXT:
> +   case GL_BLUE_INTEGER_EXT:
> +   case GL_ALPHA_INTEGER_EXT:
> +   case GL_LUMINANCE_INTEGER_EXT:
>        return 1;
>     default:
>        return 0;
> 



More information about the mesa-dev mailing list