From f258815c7d4187fd83f6944943e78206a6cdc4cb Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 3 May 2017 11:03:34 -0400 Subject: [PATCH] egl/platform/drm: Don't take display ownership until gbm is initialized If the gbm_create_device() call here actually did fail, any subsequent eglTerminate on the display would segfault. Cc: Reviewed-by: Eric Anholt Reviewed-by: Emil Velikov Signed-off-by: Adam Jackson --- src/egl/drivers/dri2/platform_drm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c index cf35ce8a1f2..9431d95e0a7 100644 --- a/src/egl/drivers/dri2/platform_drm.c +++ b/src/egl/drivers/dri2/platform_drm.c @@ -689,12 +689,12 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp) fd = loader_open_device(buf); if (fd < 0) fd = loader_open_device("/dev/dri/card0"); - dri2_dpy->own_device = 1; gbm = gbm_create_device(fd); if (gbm == NULL) { err = "DRI2: failed to create gbm device"; goto cleanup; } + dri2_dpy->own_device = 1; } else { fd = fcntl(gbm_device_get_fd(gbm), F_DUPFD_CLOEXEC, 3); if (fd < 0) { -- 2.30.2