[PATCH] Xi: take XI2 requests into account also for the swapping case.

Julien Cristau jcristau at debian.org
Sun Mar 27 12:06:08 PDT 2011


On Sun, Mar 27, 2011 at 19:15:18 +0200, Matthieu Herrb wrote:

> Signed-off-by: Matthieu Herrb <matthieu.herrb at laas.fr>
> ---
>  Xi/extinit.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/Xi/extinit.c b/Xi/extinit.c
> index 46d3459..5d695e3 100644
> --- a/Xi/extinit.c
> +++ b/Xi/extinit.c
> @@ -429,7 +429,7 @@ static int
>  SProcIDispatch(ClientPtr client)
>  {
>      REQUEST(xReq);
> -    if (stuff->data > IREQUESTS || !SProcIVector[stuff->data])
> +    if (stuff->data > IREQUESTS + XI2REQUESTS || !SProcIVector[stuff->data])
>          return BadRequest;
>  
>      return (*SProcIVector[stuff->data])(client);

This seems dangerous if you're, say, building an X server that only
supports XI 2.0 against the XI 2.1 headers.  Should probably be
"if (stuff->data >= ARRAY_SIZE(SProcIVector)) ..."
(looks like there's no ARRAY_SIZE macro outside of glx, but you get the
idea)

Cheers,
Julien


More information about the xorg-devel mailing list