xserver: Branch 'master'

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 23 14:49:55 UTC 2019


 hw/xwayland/xwayland-glamor-gbm.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

New commits:
commit d9ec525059dbe96fc893c73c0362be2a6dd73e85
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jul 23 11:01:47 2019 +0200

    xwayland: Do not free a NULL GBM bo
    
    Both `gbm_bo_create()` and `gbm_bo_create_with_modifiers()` can fail and
    return `NULL`.
    
    If that occurs, `xwl_glamor_gbm_create_pixmap()` will not create a
    pixmap for the (NULL) GBM bo, but would still try to free the bo which
    leads to a crash in mesa:
    
      [...]
      #7  <signal handler called>
      #8  in gbm_bo_destroy (bo=0x0) at ../src/gbm/main/gbm.c:439
      #9  in xwl_glamor_gbm_create_pixmap () at xwayland-glamor-gbm.c:245
      #10 in ProcCreatePixmap () at dispatch.c:1440
      #11 in Dispatch () at dispatch.c:478
      #12 in dix_main () at main.c:276
    
    To avoid the crash, only free the GBM bo if not `NULL`.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
    Bugzilla: https://bugzilla.redhat.com/1729925

diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c
index 538e6204e..c13515c3c 100644
--- a/hw/xwayland/xwayland-glamor-gbm.c
+++ b/hw/xwayland/xwayland-glamor-gbm.c
@@ -234,11 +234,12 @@ xwl_glamor_gbm_create_pixmap(ScreenPtr screen,
                                GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
         }
 
-        if (bo)
+        if (bo) {
             pixmap = xwl_glamor_gbm_create_pixmap_for_bo(screen, bo, depth);
 
-        if (!pixmap)
-            gbm_bo_destroy(bo);
+            if (!pixmap)
+                gbm_bo_destroy(bo);
+        }
     }
 
     if (!pixmap)


More information about the xorg-commit mailing list