diff options
author | marha <marha@users.sourceforge.net> | 2013-10-07 08:23:46 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-10-07 08:23:46 +0200 |
commit | 81fd17c8678e89cea6610b8b2996b028b21eb5dc (patch) | |
tree | d2c201976b3cd000658870071ab7b533359de039 /xorg-server/Xext/security.c | |
parent | 5593a3d2f370e3e12a043110bf2e395c938980d6 (diff) | |
download | vcxsrv-81fd17c8678e89cea6610b8b2996b028b21eb5dc.tar.gz vcxsrv-81fd17c8678e89cea6610b8b2996b028b21eb5dc.tar.bz2 vcxsrv-81fd17c8678e89cea6610b8b2996b028b21eb5dc.zip |
xserver fontconfig libXdmcp mesa pixmand xkeyboard-config git update 7 oct 2013
xserver commit ccbe17b1c6da1ad9d085fc8133cdd15dc7004a4a
xkeyboard-config commit c8326b7d12b20eccfd38d661b95d9b23d8a56e27
libXdmcp commit 089081dca4ba3598c6f9bf401c029378943b5854
pixman commit c89f4c826695dbb5df0817d84f845dbd3e28b7a7
fontconfig commit 604c2a683f1357fc65bad372b5d25a90099f827f
mesa commit cfbfb50cb8d47b7f6975828b504936f9324f3b12
Diffstat (limited to 'xorg-server/Xext/security.c')
-rw-r--r-- | xorg-server/Xext/security.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/xorg-server/Xext/security.c b/xorg-server/Xext/security.c index 6cc9aa044..7bf6cc4b0 100644 --- a/xorg-server/Xext/security.c +++ b/xorg-server/Xext/security.c @@ -57,8 +57,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; @@ -141,6 +142,7 @@ SecurityLabelInitial(void) state = dixLookupPrivate(&serverClient->devPrivates, stateKey); state->trustLevel = XSecurityClientTrusted; state->haveState = TRUE; + state->live = FALSE; } /* @@ -953,6 +955,7 @@ SecurityClientState(CallbackListPtr *pcbl, pointer unused, pointer calldata) state->trustLevel = XSecurityClientTrusted; state->authId = None; state->haveState = TRUE; + state->live = FALSE; break; case ClientStateRunning: @@ -963,6 +966,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); @@ -975,9 +979,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); } |