xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Mon Sep 21 14:45:03 PDT 2015


 miext/rootless/rootlessValTree.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit fa0bb01899d586e02cf51892c17edd22e462a46c
Author: Adam Jackson <ajax at redhat.com>
Date:   Mon Sep 21 15:23:23 2015 -0400

    rootless: Fix bogus handling of broken root clip
    
    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.
    
    Reviewed-by: Keith Packard <keithp at keithp.com>
    Signed-off-by: Adam Jackson <ajax at redhat.com>

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");
     }
 


More information about the xorg-commit mailing list