[PATCH] rootless: Fix bogus handling of broken root clip
Adam Jackson
ajax at redhat.com
Mon Sep 21 12:26:25 PDT 2015
gcc quite correctly complains about this:
In file included from ../../include/scrnintstr.h:51:0,
from rootlessValTree.c:98:
In function 'RegionUninit.isra.1',
inlined from 'RegionEmpty' at ../../include/regionstr.h:194:5,
inlined from 'RootlessMiValidateTree' at rootlessValTree.c:490:9:
../../include/regionstr.h:166:9: warning: attempt to free a non-heap object 'RegionBrokenData' [-Wfree-nonheap-object]
free((_pReg)->data);
So that'd crash if you ever got there. RegionNull will do almost the
same thing only without the free(), so let's do that instead; it might
still not be an entirely sane way to recover, but it at least won't
crash.
Signed-off-by: Adam Jackson <ajax at redhat.com>
---
miext/rootless/rootlessValTree.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/miext/rootless/rootlessValTree.c b/miext/rootless/rootlessValTree.c
index 0f7b76c..409e6a0 100644
--- a/miext/rootless/rootlessValTree.c
+++ b/miext/rootless/rootlessValTree.c
@@ -487,7 +487,7 @@ RootlessMiValidateTree(WindowPtr pRoot, /* Parent to validate */
if (RegionBroken(&pRoot->clipList) && !RegionBroken(&pRoot->borderClip)) {
// fixme this might not work, but hopefully doesn't happen anyway.
kind = VTBroken;
- RegionEmpty(&pRoot->clipList);
+ RegionNull(&pRoot->clipList);
ErrorF("ValidateTree: BUSTED!\n");
}
--
2.4.3
More information about the xorg-devel
mailing list