summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>2016-05-02 22:40:13 +0100
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2016-05-17 17:57:40 +0300
commitb8347e3a45db4fc06ac158ae6c9831a8437c91c9 (patch)
tree5418728d9c9bafa1112cb39e6e88f00831722236
parenta62138bf908b028d5e19b96b928e771412ab68db (diff)
downloadweston-b8347e3a45db4fc06ac158ae6c9831a8437c91c9.tar.gz
compositor-drm: Prevent a crash in the pixman renderer
When pixman is used and no connector could be found (or any other error), drm_backend_create() tried to destroy a gbm_device that would only be created in init_egl(), resulting in a segfault. Signed-off-by: Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-rw-r--r--src/compositor-drm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 1ce9b2d2..893877d9 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -3191,7 +3191,8 @@ err_drm_source:
err_udev_input:
udev_input_destroy(&b->input);
err_sprite:
- gbm_device_destroy(b->gbm);
+ if (b->gbm)
+ gbm_device_destroy(b->gbm);
destroy_sprites(b);
err_udev_dev:
udev_device_unref(drm_device);