[PATCH 41/42] Remove LocalClient checks from local-only extensions

Peter Hutterer peter.hutterer at who-t.net
Tue Dec 6 16:02:16 PST 2011


On Fri, Dec 02, 2011 at 11:27:49AM +0000, Daniel Stone wrote:
> We already hide the extension from clients and deny their requests, so I
> doubt we'll be needing the LocalClient() check anymore.
> 
> Signed-off-by: Daniel Stone <daniel at fooishbar.org>

Acked-by: Peter Hutterer <peter.hutterer at who-t.net>

Cheers,
  Peter

> ---
>  hw/kdrive/ephyr/ephyrdriext.c |   62 +-----------------
>  hw/xfree86/common/xf86DGA.c   |    5 +-
>  hw/xfree86/dri/xf86dri.c      |   59 +----------------
>  hw/xfree86/dri2/dri2ext.c     |   54 +--------------
>  hw/xquartz/applewm.c          |   35 +---------
>  hw/xquartz/xpr/appledri.c     |  151 +----------------------------------------
>  hw/xwin/winwindowswm.c        |   22 +------
>  7 files changed, 8 insertions(+), 380 deletions(-)
> 
> diff --git a/hw/kdrive/ephyr/ephyrdriext.c b/hw/kdrive/ephyr/ephyrdriext.c
> index 0bd11d2..d2f5381 100644
> --- a/hw/kdrive/ephyr/ephyrdriext.c
> +++ b/hw/kdrive/ephyr/ephyrdriext.c
> @@ -551,13 +551,6 @@ ProcXF86DRIQueryVersion (register ClientPtr client)
>      rep.majorVersion = SERVER_XF86DRI_MAJOR_VERSION;
>      rep.minorVersion = SERVER_XF86DRI_MINOR_VERSION;
>      rep.patchVersion = SERVER_XF86DRI_PATCH_VERSION;
> -    if (client->swapped) {
> -    swaps(&rep.sequenceNumber);
> -    swapl(&rep.length);
> -	swaps(&rep.majorVersion);
> -	swaps(&rep.minorVersion);
> -	swapl(&rep.patchVersion);
> -    }
>      WriteToClient(client, sizeof(xXF86DRIQueryVersionReply), (char *)&rep);
>      EPHYR_LOG ("leave\n") ;
>      return Success;
> @@ -586,14 +579,6 @@ ProcXF86DRIQueryDirectRenderingCapable (register ClientPtr client)
>      }
>      rep.isCapable = isCapable;
>  
> -    if (!LocalClient(client) || client->swapped)
> -	rep.isCapable = 0;
> -
> -    if (client->swapped) {
> -	swaps(&rep.sequenceNumber);
> -	swapl(&rep.length);
> -    }
> -
>      WriteToClient(client, sizeof(xXF86DRIQueryDirectRenderingCapableReply), (char *)&rep);
>      EPHYR_LOG ("leave\n") ;
>  
> @@ -1251,13 +1236,6 @@ ProcXF86DRIDispatch (register ClientPtr	client)
>                  EPHYR_LOG ("leave\n") ;
>                  return ProcXF86DRIQueryDirectRenderingCapable(client);
>          }
> -    }
> -
> -    if (!LocalClient(client))
> -        return DRIErrorBase + XF86DRIClientNotLocal;
> -
> -    switch (stuff->data)
> -    {
>          case X_XF86DRIOpenConnection: {
>              EPHYR_LOG ("leave\n") ;
>              return ProcXF86DRIOpenConnection(client);
> @@ -1307,47 +1285,9 @@ ProcXF86DRIDispatch (register ClientPtr	client)
>  }
>  
>  static int
> -SProcXF86DRIQueryVersion (register ClientPtr	client)
> -{
> -    REQUEST(xXF86DRIQueryVersionReq);
> -    swaps(&stuff->length);
> -    return ProcXF86DRIQueryVersion(client);
> -}
> -
> -static int
> -SProcXF86DRIQueryDirectRenderingCapable (register ClientPtr client)
> -{
> -    REQUEST(xXF86DRIQueryDirectRenderingCapableReq);
> -    swaps(&stuff->length);
> -    swapl(&stuff->screen);
> -    return ProcXF86DRIQueryDirectRenderingCapable(client);
> -}
> -
> -static int
>  SProcXF86DRIDispatch (register ClientPtr client)
>  {
> -    REQUEST(xReq);
> -
> -    EPHYR_LOG ("enter\n") ;
> -    /*
> -     * Only local clients are allowed DRI access, but remote clients still need
> -     * these requests to find out cleanly.
> -     */
> -    switch (stuff->data)
> -    {
> -        case X_XF86DRIQueryVersion: {
> -            EPHYR_LOG ("leave\n") ;
> -            return SProcXF86DRIQueryVersion(client);
> -        }
> -        case X_XF86DRIQueryDirectRenderingCapable: {
> -            EPHYR_LOG ("leave\n") ;
> -            return SProcXF86DRIQueryDirectRenderingCapable(client);
> -        }
> -        default: {
> -            EPHYR_LOG ("leave\n") ;
> -            return DRIErrorBase + XF86DRIClientNotLocal;
> -        }
> -    }
> +    return BadRequest;
>  }
>  
>  Bool
> diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c
> index b983a9b..8bb7755 100644
> --- a/hw/xfree86/common/xf86DGA.c
> +++ b/hw/xfree86/common/xf86DGA.c
> @@ -2093,7 +2093,7 @@ ProcXF86DGAViewPortChanged(ClientPtr client)
>  static int
>  SProcXDGADispatch (ClientPtr client)
>  {
> -   return DGAErrorBase + XF86DGAClientNotLocal;
> +   return BadRequest;
>  }
>  
>  #if 0
> @@ -2137,9 +2137,6 @@ ProcXDGADispatch (ClientPtr client)
>  {
>      REQUEST(xReq);
>  
> -    if (!LocalClient(client))
> -	return DGAErrorBase + XF86DGAClientNotLocal;
> -
>  #ifdef DGA_REQ_DEBUG
>      if (stuff->data <= X_XDGACreateColormap)
>  	fprintf (stderr, "    DGA %s\n", dgaMinor[stuff->data]);
> diff --git a/hw/xfree86/dri/xf86dri.c b/hw/xfree86/dri/xf86dri.c
> index e9a592a..e2b312a 100644
> --- a/hw/xfree86/dri/xf86dri.c
> +++ b/hw/xfree86/dri/xf86dri.c
> @@ -94,13 +94,6 @@ ProcXF86DRIQueryVersion(
>      rep.majorVersion = SERVER_XF86DRI_MAJOR_VERSION;
>      rep.minorVersion = SERVER_XF86DRI_MINOR_VERSION;
>      rep.patchVersion = SERVER_XF86DRI_PATCH_VERSION;
> -    if (client->swapped) {
> -	swaps(&rep.sequenceNumber);
> -	swapl(&rep.length);
> -	swaps(&rep.majorVersion);
> -	swaps(&rep.minorVersion);
> -	swapl(&rep.patchVersion);
> -    }
>      WriteToClient(client, sizeof(xXF86DRIQueryVersionReply), (char *)&rep);
>      return Success;
>  }
> @@ -130,14 +123,6 @@ ProcXF86DRIQueryDirectRenderingCapable(
>      }
>      rep.isCapable = isCapable;
>  
> -    if (!LocalClient(client) || client->swapped)
> -	rep.isCapable = 0;
> -
> -    if (client->swapped) {
> -	swaps(&rep.sequenceNumber);
> -	swapl(&rep.length);
> -    }
> -
>      WriteToClient(client, 
>  	sizeof(xXF86DRIQueryDirectRenderingCapableReply), (char *)&rep);
>      return Success;
> @@ -555,13 +540,6 @@ ProcXF86DRIDispatch (
>  	return ProcXF86DRIQueryVersion(client);
>      case X_XF86DRIQueryDirectRenderingCapable:
>  	return ProcXF86DRIQueryDirectRenderingCapable(client);
> -    }
> -
> -    if (!LocalClient(client))
> -	return DRIErrorBase + XF86DRIClientNotLocal;
> -
> -    switch (stuff->data)
> -    {
>      case X_XF86DRIOpenConnection:
>  	return ProcXF86DRIOpenConnection(client);
>      case X_XF86DRICloseConnection:
> @@ -589,46 +567,11 @@ ProcXF86DRIDispatch (
>  }
>  
>  static int
> -SProcXF86DRIQueryVersion(
> -    register ClientPtr	client
> -)
> -{
> -    REQUEST(xXF86DRIQueryVersionReq);
> -    swaps(&stuff->length);
> -    return ProcXF86DRIQueryVersion(client);
> -}
> -
> -static int
> -SProcXF86DRIQueryDirectRenderingCapable(
> -    register ClientPtr client
> -)
> -{
> -    REQUEST(xXF86DRIQueryDirectRenderingCapableReq);
> -    swaps(&stuff->length);
> -    swapl(&stuff->screen);
> -    return ProcXF86DRIQueryDirectRenderingCapable(client);
> -}
> -
> -static int
>  SProcXF86DRIDispatch (
>      register ClientPtr	client
>  )
>  {
> -    REQUEST(xReq);
> -
> -    /*
> -     * Only local clients are allowed DRI access, but remote clients still need
> -     * these requests to find out cleanly.
> -     */
> -    switch (stuff->data)
> -    {
> -    case X_XF86DRIQueryVersion:
> -	return SProcXF86DRIQueryVersion(client);
> -    case X_XF86DRIQueryDirectRenderingCapable:
> -	return SProcXF86DRIQueryDirectRenderingCapable(client);
> -    default:
> -	return DRIErrorBase + XF86DRIClientNotLocal;
> -    }
> +    return BadRequest;
>  }
>  
>  void
> diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
> index 64cd8bc..e54e08f 100644
> --- a/hw/xfree86/dri2/dri2ext.c
> +++ b/hw/xfree86/dri2/dri2ext.c
> @@ -71,9 +71,6 @@ ProcDRI2QueryVersion(ClientPtr client)
>      REQUEST(xDRI2QueryVersionReq);
>      xDRI2QueryVersionReply rep;
>  
> -    if (client->swapped)
> -	swaps(&stuff->length);
> -
>      REQUEST_SIZE_MATCH(xDRI2QueryVersionReq);
>      rep.type = X_Reply;
>      rep.length = 0;
> @@ -81,13 +78,6 @@ ProcDRI2QueryVersion(ClientPtr client)
>      rep.majorVersion = dri2_major;
>      rep.minorVersion = dri2_minor;
>  
> -    if (client->swapped) {
> -	swaps(&rep.sequenceNumber);
> -	swapl(&rep.length);
> -	swapl(&rep.majorVersion);
> -	swapl(&rep.minorVersion);
> -    }
> -
>      WriteToClient(client, sizeof(xDRI2QueryVersionReply), &rep);
>  
>      return Success;
> @@ -543,12 +533,6 @@ ProcDRI2Dispatch (ClientPtr client)
>      switch (stuff->data) {
>      case X_DRI2QueryVersion:
>  	return ProcDRI2QueryVersion(client);
> -    }
> -
> -    if (!LocalClient(client))
> -	return BadRequest;
> -
> -    switch (stuff->data) {
>      case X_DRI2Connect:
>  	return ProcDRI2Connect(client);
>      case X_DRI2Authenticate:
> @@ -579,44 +563,10 @@ ProcDRI2Dispatch (ClientPtr client)
>  }
>  
>  static int
> -SProcDRI2Connect(ClientPtr client)
> -{
> -    REQUEST(xDRI2ConnectReq);
> -    xDRI2ConnectReply rep;
> -
> -    /* If the client is swapped, it's not local.  Talk to the hand. */
> -
> -    swaps(&stuff->length);
> -    if (sizeof(*stuff) / 4 != client->req_len)
> -	return BadLength;
> -
> -    rep.sequenceNumber = client->sequence;
> -    swaps(&rep.sequenceNumber);
> -    rep.length = 0;
> -    rep.driverNameLength = 0;
> -    rep.deviceNameLength = 0;
> -
> -    return Success;
> -}
> -
> -static int
>  SProcDRI2Dispatch (ClientPtr client)
>  {
> -    REQUEST(xReq);
> -
> -    /*
> -     * Only local clients are allowed DRI access, but remote clients
> -     * still need these requests to find out cleanly.
> -     */
> -    switch (stuff->data)
> -    {
> -    case X_DRI2QueryVersion:
> -	return ProcDRI2QueryVersion(client);
> -    case X_DRI2Connect:
> -	return SProcDRI2Connect(client);
> -    default:
> -	return BadRequest;
> -    }
> +    /* If the client is swapped, it's not local.  Talk to the hand. */
> +    return BadRequest;
>  }
>  
>  int DRI2EventBase;
> diff --git a/hw/xquartz/applewm.c b/hw/xquartz/applewm.c
> index 04dedf1..be5d1c1 100644
> --- a/hw/xquartz/applewm.c
> +++ b/hw/xquartz/applewm.c
> @@ -155,10 +155,6 @@ ProcAppleWMQueryVersion(
>      rep.majorVersion = SERVER_APPLEWM_MAJOR_VERSION;
>      rep.minorVersion = SERVER_APPLEWM_MINOR_VERSION;
>      rep.patchVersion = SERVER_APPLEWM_PATCH_VERSION;
> -    if (client->swapped) {
> -        swaps(&rep.sequenceNumber);
> -        swapl(&rep.length);
> -    }
>      WriteToClient(client, sizeof(xAppleWMQueryVersionReply), (char *)&rep);
>      return Success;
>  }
> @@ -628,13 +624,6 @@ ProcAppleWMDispatch (
>      {
>      case X_AppleWMQueryVersion:
>          return ProcAppleWMQueryVersion(client);
> -    }
> -
> -    if (!LocalClient(client))
> -        return WMErrorBase + AppleWMClientNotLocal;
> -
> -    switch (stuff->data)
> -    {
>      case X_AppleWMSelectInput:
>          return ProcAppleWMSelectInput(client);
>      case X_AppleWMDisableUpdate:
> @@ -676,34 +665,12 @@ SNotifyEvent(xAppleWMNotifyEvent *from, xAppleWMNotifyEvent *to) {
>  }
>  
>  static int
> -SProcAppleWMQueryVersion(
> -    register ClientPtr  client
> -)
> -{
> -    REQUEST(xAppleWMQueryVersionReq);
> -    swaps(&stuff->length);
> -    return ProcAppleWMQueryVersion(client);
> -}
> -
> -static int
>  SProcAppleWMDispatch (
>      register ClientPtr  client
>  )
>  {
> -    REQUEST(xReq);
> -
> -    /* It is bound to be non-local when there is byte swapping */
> -    if (!LocalClient(client))
> -        return WMErrorBase + AppleWMClientNotLocal;
> -
>      /* only local clients are allowed WM access */
> -    switch (stuff->data)
> -    {
> -    case X_AppleWMQueryVersion:
> -        return SProcAppleWMQueryVersion(client);
> -    default:
> -        return BadRequest;
> -    }
> +    return BadRequest;
>  }
>  
>  void
> diff --git a/hw/xquartz/xpr/appledri.c b/hw/xquartz/xpr/appledri.c
> index a8d0e08..2fe338a 100644
> --- a/hw/xquartz/xpr/appledri.c
> +++ b/hw/xquartz/xpr/appledri.c
> @@ -66,8 +66,6 @@ static int ProcAppleDRICreatePixmap(ClientPtr client);
>  static unsigned char DRIReqCode = 0;
>  static int DRIEventBase = 0;
>  
> -static void SNotifyEvent(xAppleDRINotifyEvent *from, xAppleDRINotifyEvent *to);
> -
>  typedef struct _DRIEvent *DRIEventPtr;
>  typedef struct _DRIEvent {
>      DRIEventPtr     next;
> @@ -99,13 +97,6 @@ ProcAppleDRIQueryVersion(
>      rep.majorVersion = SERVER_APPLEDRI_MAJOR_VERSION;
>      rep.minorVersion = SERVER_APPLEDRI_MINOR_VERSION;
>      rep.patchVersion = SERVER_APPLEDRI_PATCH_VERSION;
> -    if (client->swapped) {
> -        swaps(&rep.sequenceNumber);
> -        swapl(&rep.length);
> -        swaps(&rep.majorVersion);
> -        swaps(&rep.minorVersion);
> -        swapl(&rep.patchVersion);
> -    }
>      WriteToClient(client, sizeof(xAppleDRIQueryVersionReply), (char *)&rep);
>      return Success;
>  }
> @@ -133,14 +124,6 @@ ProcAppleDRIQueryDirectRenderingCapable(
>      }
>      rep.isCapable = isCapable;
>  
> -    if (!LocalClient(client))
> -        rep.isCapable = 0;
> -
> -    if (client->swapped) {
> -        swaps(&rep.sequenceNumber);
> -        swapl(&rep.length);
> -    }
> -
>      WriteToClient(client, 
>          sizeof(xAppleDRIQueryDirectRenderingCapableReply), (char *)&rep);
>      return Success;
> @@ -363,13 +346,6 @@ ProcAppleDRIDispatch (
>          return ProcAppleDRIQueryVersion(client);
>      case X_AppleDRIQueryDirectRenderingCapable:
>          return ProcAppleDRIQueryDirectRenderingCapable(client);
> -    }
> -
> -    if (!LocalClient(client))
> -        return DRIErrorBase + AppleDRIClientNotLocal;
> -
> -    switch (stuff->data)
> -    {
>      case X_AppleDRIAuthConnection:
>          return ProcAppleDRIAuthConnection(client);
>      case X_AppleDRICreateSurface:
> @@ -386,134 +362,12 @@ ProcAppleDRIDispatch (
>      }
>  }
>  
> -static void
> -SNotifyEvent(
> -    xAppleDRINotifyEvent *from,
> -    xAppleDRINotifyEvent *to
> -)
> -{
> -    to->type = from->type;
> -    to->kind = from->kind;
> -    cpswaps (from->sequenceNumber, to->sequenceNumber);
> -    cpswapl (from->time, to->time);
> -    cpswapl (from->arg, to->arg);
> -}
> -
> -static int
> -SProcAppleDRIQueryVersion(
> -    register ClientPtr client
> -)
> -{
> -    REQUEST(xAppleDRIQueryVersionReq);
> -    swaps(&stuff->length);
> -    return ProcAppleDRIQueryVersion(client);
> -}
> -
> -static int
> -SProcAppleDRIQueryDirectRenderingCapable(
> -    register ClientPtr client
> -)
> -{
> -    REQUEST(xAppleDRIQueryDirectRenderingCapableReq);
> -    swaps(&stuff->length);
> -    swapl(&stuff->screen);
> -    return ProcAppleDRIQueryDirectRenderingCapable(client);
> -}
> -
> -static int
> -SProcAppleDRIAuthConnection(
> -    register ClientPtr client
> -)
> -{
> -    REQUEST(xAppleDRIAuthConnectionReq);
> -    swaps(&stuff->length);
> -    swapl(&stuff->screen);
> -    swapl(&stuff->magic);
> -    return ProcAppleDRIAuthConnection(client);
> -}
> -
> -static int
> -SProcAppleDRICreateSurface(
> -    register ClientPtr client
> -)
> -{
> -    REQUEST(xAppleDRICreateSurfaceReq);
> -    swaps(&stuff->length);
> -    swapl(&stuff->screen);
> -    swapl(&stuff->drawable);
> -    swapl(&stuff->client_id);
> -    return ProcAppleDRICreateSurface(client);
> -}
> -
> -static int
> -SProcAppleDRIDestroySurface(
> -    register ClientPtr client
> -)
> -{
> -    REQUEST(xAppleDRIDestroySurfaceReq);
> -    swaps(&stuff->length);
> -    swapl(&stuff->screen);
> -    swapl(&stuff->drawable);
> -    return ProcAppleDRIDestroySurface(client);
> -}
> -
> -static int
> -SProcAppleDRICreatePixmap(
> -    register ClientPtr client
> -)
> -{
> -    REQUEST(xAppleDRICreatePixmapReq);
> -    swaps(&stuff->length);
> -    swapl(&stuff->screen);
> -    swapl(&stuff->drawable);
> -    return ProcAppleDRICreatePixmap(client);
> -}
> -
> -static int
> -SProcAppleDRIDestroyPixmap(
> -    register ClientPtr client
> -)
> -{
> -    REQUEST(xAppleDRIDestroyPixmapReq);
> -    swaps(&stuff->length);
> -    swapl(&stuff->drawable);
> -    return ProcAppleDRIDestroyPixmap(client);
> -}
> -
>  static int
>  SProcAppleDRIDispatch (
>      register ClientPtr client
>  )
>  {
> -    REQUEST(xReq);
> -
> -    switch (stuff->data)
> -    {
> -    case X_AppleDRIQueryVersion:
> -        return SProcAppleDRIQueryVersion(client);
> -    case X_AppleDRIQueryDirectRenderingCapable:
> -        return SProcAppleDRIQueryDirectRenderingCapable(client);
> -    }
> -
> -    if (!LocalClient(client))
> -        return DRIErrorBase + AppleDRIClientNotLocal;
> -
> -    switch (stuff->data)
> -    {
> -    case X_AppleDRIAuthConnection:
> -        return SProcAppleDRIAuthConnection(client);
> -    case X_AppleDRICreateSurface:
> -        return SProcAppleDRICreateSurface(client);
> -    case X_AppleDRIDestroySurface:
> -        return SProcAppleDRIDestroySurface(client);
> -    case X_AppleDRICreatePixmap:
> -	return SProcAppleDRICreatePixmap(client);
> -    case X_AppleDRIDestroyPixmap:
> -	return SProcAppleDRIDestroyPixmap(client);
> -
> -    default:
> -        return BadRequest;
> -    }
> +    return BadRequest;
>  }
>  
>  void
> @@ -530,11 +384,8 @@ AppleDRIExtensionInit(void)
>                                   AppleDRIResetProc,
>                                   StandardMinorOpcode,
>                                   TRUE))) {
> -        size_t i;
>          DRIReqCode = (unsigned char)extEntry->base;
>          DRIErrorBase = extEntry->errorBase;
>          DRIEventBase = extEntry->eventBase;
> -        for (i=0; i < AppleDRINumberEvents; i++)
> -            EventSwapVector[DRIEventBase + i] = (EventSwapPtr) SNotifyEvent;
>      }
>  }
> diff --git a/hw/xwin/winwindowswm.c b/hw/xwin/winwindowswm.c
> index 000ebff..a5d6845 100644
> --- a/hw/xwin/winwindowswm.c
> +++ b/hw/xwin/winwindowswm.c
> @@ -546,13 +546,6 @@ ProcWindowsWMDispatch (ClientPtr client)
>      {
>      case X_WindowsWMQueryVersion:
>        return ProcWindowsWMQueryVersion(client);
> -    }
> -
> -  if (!LocalClient(client))
> -    return WMErrorBase + WindowsWMClientNotLocal;
> -
> -  switch (stuff->data)
> -    {
>      case X_WindowsWMSelectInput:
>        return ProcWindowsWMSelectInput(client);
>      case X_WindowsWMDisableUpdate:
> @@ -595,20 +588,7 @@ SProcWindowsWMQueryVersion (ClientPtr client)
>  static int
>  SProcWindowsWMDispatch (ClientPtr client)
>  {
> -  REQUEST(xReq);
> -
> -  /* It is bound to be non-local when there is byte swapping */
> -  if (!LocalClient(client))
> -    return WMErrorBase + WindowsWMClientNotLocal;
> -
> -  /* only local clients are allowed WM access */
> -  switch (stuff->data)
> -    {
> -    case X_WindowsWMQueryVersion:
> -      return SProcWindowsWMQueryVersion(client);
> -    default:
> -      return BadRequest;
> -    }
> +  return BadRequest;
>  }
>  
>  void
> -- 
> 1.7.7.3
> 
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
> 


More information about the xorg-devel mailing list