diff options
author | Simon Ser <contact@emersion.fr> | 2021-01-12 11:41:45 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2021-01-12 11:41:45 +0100 |
commit | 5d054258af1bbdad43758d0161ef4ca10f41aaec (patch) | |
tree | 563beacb2a0577bbf866f3c0d6d0f9bb8393bee3 /backend/drm | |
parent | 3f7e0cf5f073ef7ef88128e8661b959cc9140490 (diff) |
backend/drm: fix segfault in page_flip_handler
Since 5b1b43c68c7a ("backend/drm: make wlr_drm_plane.{pending,queued,current}_fb
pointers"), current_fb can be NULL if there's no buffer. If current_fb
is not NULL, current_fb->wlr_buf is guaranteed to not be NULL.
Closes: https://github.com/swaywm/wlroots/issues/2634
Diffstat (limited to 'backend/drm')
-rw-r--r-- | backend/drm/drm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c index 6b6e49a6..b58241af 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -1484,7 +1484,7 @@ static void page_flip_handler(int fd, unsigned seq, * data between the GPUs, even if we were using the direct scanout * interface. */ - if (!drm->parent && plane->current_fb->wlr_buf && + if (!drm->parent && plane->current_fb && wlr_client_buffer_get(plane->current_fb->wlr_buf)) { present_flags |= WLR_OUTPUT_PRESENT_ZERO_COPY; } |