On Fri, Dec 02, 2011 at 11:27:48AM +0000, Daniel Stone wrote: > Even though we hide local-only extensions from remote clients in the > extension list, make doubly sure they can't make a local-only request. > > Signed-off-by: Daniel Stone <dan...@fooishbar.org>
Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> Cheers, Peter > --- > dix/dispatch.c | 14 ++++++++++---- > 1 files changed, 10 insertions(+), 4 deletions(-) > > diff --git a/dix/dispatch.c b/dix/dispatch.c > index b39271f..51b9033 100644 > --- a/dix/dispatch.c > +++ b/dix/dispatch.c > @@ -432,10 +432,16 @@ Dispatch(void) > if (result > (maxBigRequestSize << 2)) > result = BadLength; > else { > - result = XaceHookDispatch(client, client->majorOp); > - if (result == Success) > - result = (* > client->requestVector[client->majorOp])(client); > - XaceHookAuditEnd(client, result); > + ExtensionEntry *ext = GetExtensionEntry(client->majorOp); > + if (ext && ext->localOnly && !LocalClient(client)) { > + result = BadRequest; > + } > + else { > + result = XaceHookDispatch(client, client->majorOp); > + if (result == Success) > + result = (* > client->requestVector[client->majorOp])(client); > + XaceHookAuditEnd(client, result); > + } > } > #ifdef XSERVER_DTRACE > XSERVER_REQUEST_DONE(LookupMajorName(client->majorOp), > client->majorOp, > -- > 1.7.7.3 > > _______________________________________________ > xorg-devel@lists.x.org: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel > _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel