summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEamon Walsh <ewalsh@tycho.nsa.gov>2007-10-10 19:56:03 -0400
committerEamon Walsh <ewalsh@moss-charon.epoch.ncsc.mil>2007-10-10 19:56:03 -0400
commit8f23d40068151ad85cde239d07031284f0b2c4dc (patch)
tree261f72d58b26d13ee23848ed07e3ccb86be00a7d
parent473bc6ec4c59e1a962b0b897c449a69aa5064ab0 (diff)
xace: move the property deletion hook inside the DeleteProperty function.
-rw-r--r--dix/property.c17
-rw-r--r--hw/darwin/quartz/xpr/xprFrame.c2
-rwxr-xr-xhw/xwin/winwin32rootless.c2
3 files changed, 10 insertions, 11 deletions
diff --git a/dix/property.c b/dix/property.c
index cff51d894..713507a09 100644
--- a/dix/property.c
+++ b/dix/property.c
@@ -365,9 +365,10 @@ ChangeWindowProperty(WindowPtr pWin, Atom property, Atom type, int format,
}
int
-DeleteProperty(WindowPtr pWin, Atom propName)
+DeleteProperty(ClientPtr client, WindowPtr pWin, Atom propName)
{
PropertyPtr pProp, prevProp;
+ int rc;
if (!(pProp = wUserProps (pWin)))
return(Success);
@@ -381,6 +382,11 @@ DeleteProperty(WindowPtr pWin, Atom propName)
}
if (pProp)
{
+ rc = XaceHook(XACE_PROPERTY_ACCESS, client, pWin, pProp,
+ DixDestroyAccess);
+ if (rc != Success)
+ return rc;
+
if (prevProp == (PropertyPtr)NULL) /* takes care of head */
{
if (!(pWin->optional->userProps = pProp->next))
@@ -636,14 +642,7 @@ ProcDeleteProperty(ClientPtr client)
return (BadAtom);
}
- result = XaceHook(XACE_PROPERTY_ACCESS, client, pWin,
- FindProperty(pWin, stuff->property), DixDestroyAccess);
- if (result != Success) {
- client->errorValue = stuff->property;
- return result;
- }
-
- result = DeleteProperty(pWin, stuff->property);
+ result = DeleteProperty(client, pWin, stuff->property);
if (client->noClientException != Success)
return(client->noClientException);
else
diff --git a/hw/darwin/quartz/xpr/xprFrame.c b/hw/darwin/quartz/xpr/xprFrame.c
index 76c719ec0..c5b84f08b 100644
--- a/hw/darwin/quartz/xpr/xprFrame.c
+++ b/hw/darwin/quartz/xpr/xprFrame.c
@@ -337,7 +337,7 @@ xprDamageRects(RootlessFrameID wid, int nrects, const BoxRec *rects,
void
xprSwitchWindow(RootlessWindowPtr pFrame, WindowPtr oldWin)
{
- DeleteProperty(oldWin, xa_native_window_id());
+ DeleteProperty(serverClient, oldWin, xa_native_window_id());
xprSetNativeProperty(pFrame);
}
diff --git a/hw/xwin/winwin32rootless.c b/hw/xwin/winwin32rootless.c
index 832e36d44..4b4cd3ded 100755
--- a/hw/xwin/winwin32rootless.c
+++ b/hw/xwin/winwin32rootless.c
@@ -971,7 +971,7 @@ winMWExtWMRootlessSwitchWindow (RootlessWindowPtr pFrame, WindowPtr oldWin)
SetWindowLongPtr (pRLWinPriv->hWnd, GWL_STYLE,
WS_POPUP | WS_CLIPCHILDREN);
- DeleteProperty (oldWin, AtmWindowsWmNativeHwnd ());
+ DeleteProperty (serverClient, oldWin, AtmWindowsWmNativeHwnd ());
winMWExtWMSetNativeProperty (pFrame);
#if CYGMULTIWINDOW_DEBUG
#if 0