aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/Xext
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-10-07 16:40:05 +0200
committermarha <marha@users.sourceforge.net>2013-10-07 16:40:05 +0200
commit8f0ed7f7a754df710b13b9dabbaa32b5d4211182 (patch)
tree03bf52a933c29962894c2cec5f33028439cf4f5a /xorg-server/Xext
parent7d29f4054380e7f42722c280b9caedce9fa4ace9 (diff)
parent81fd17c8678e89cea6610b8b2996b028b21eb5dc (diff)
downloadvcxsrv-8f0ed7f7a754df710b13b9dabbaa32b5d4211182.tar.gz
vcxsrv-8f0ed7f7a754df710b13b9dabbaa32b5d4211182.tar.bz2
vcxsrv-8f0ed7f7a754df710b13b9dabbaa32b5d4211182.zip
Merge remote-tracking branch 'origin/released'
* origin/released: xserver fontconfig libXdmcp mesa pixmand xkeyboard-config git update 7 oct 2013 Conflicts: xorg-server/dix/dispatch.c xorg-server/dix/privates.c xorg-server/glx/glxcmds.c xorg-server/hw/kdrive/ephyr/ephyr.h xorg-server/hw/kdrive/ephyr/ephyrinit.c xorg-server/hw/kdrive/ephyr/hostx.c
Diffstat (limited to 'xorg-server/Xext')
-rw-r--r--xorg-server/Xext/panoramiX.c6
-rw-r--r--xorg-server/Xext/security.c11
2 files changed, 8 insertions, 9 deletions
diff --git a/xorg-server/Xext/panoramiX.c b/xorg-server/Xext/panoramiX.c
index c0aed27d7..be7e03100 100644
--- a/xorg-server/Xext/panoramiX.c
+++ b/xorg-server/Xext/panoramiX.c
@@ -53,9 +53,7 @@ Equipment Corporation.
#include "servermd.h"
#include "resource.h"
#include "picturestr.h"
-#ifdef XFIXES
#include "xfixesint.h"
-#endif
#ifdef COMPOSITE
#include "compint.h"
#endif
@@ -583,9 +581,7 @@ PanoramiXExtensionInit(void)
ProcVector[X_StoreNamedColor] = PanoramiXStoreNamedColor;
PanoramiXRenderInit();
-#ifdef XFIXES
PanoramiXFixesInit();
-#endif
#ifdef COMPOSITE
PanoramiXCompositeInit();
#endif
@@ -890,9 +886,7 @@ PanoramiXResetProc(ExtensionEntry * extEntry)
int i;
PanoramiXRenderReset();
-#ifdef XFIXES
PanoramiXFixesReset();
-#endif
#ifdef COMPOSITE
PanoramiXCompositeReset ();
#endif
diff --git a/xorg-server/Xext/security.c b/xorg-server/Xext/security.c
index 8a82806e9..dce3c9fba 100644
--- a/xorg-server/Xext/security.c
+++ b/xorg-server/Xext/security.c
@@ -59,8 +59,9 @@ static DevPrivateKeyRec stateKeyRec;
/* This is what we store as client security state */
typedef struct {
- int haveState;
- unsigned int trustLevel;
+ unsigned int haveState :1;
+ unsigned int live :1;
+ unsigned int trustLevel :2;
XID authId;
} SecurityStateRec;
@@ -143,6 +144,7 @@ SecurityLabelInitial(void)
state = dixLookupPrivate(&serverClient->devPrivates, stateKey);
state->trustLevel = XSecurityClientTrusted;
state->haveState = TRUE;
+ state->live = FALSE;
}
/*
@@ -952,6 +954,7 @@ SecurityClientState(CallbackListPtr *pcbl, pointer unused, pointer calldata)
state->trustLevel = XSecurityClientTrusted;
state->authId = None;
state->haveState = TRUE;
+ state->live = FALSE;
break;
case ClientStateRunning:
@@ -962,6 +965,7 @@ SecurityClientState(CallbackListPtr *pcbl, pointer unused, pointer calldata)
if (rc == Success) {
/* it is a generated authorization */
pAuth->refcnt++;
+ state->live = TRUE;
if (pAuth->refcnt == 1 && pAuth->timer)
TimerCancel(pAuth->timer);
@@ -974,9 +978,10 @@ SecurityClientState(CallbackListPtr *pcbl, pointer unused, pointer calldata)
rc = dixLookupResourceByType((pointer *) &pAuth, state->authId,
SecurityAuthorizationResType, serverClient,
DixGetAttrAccess);
- if (rc == Success) {
+ if (rc == Success && state->live) {
/* it is a generated authorization */
pAuth->refcnt--;
+ state->live = FALSE;
if (pAuth->refcnt == 0)
SecurityStartAuthorizationTimer(pAuth);
}