compositor-drm: Set cursor surface to NULL when pageflip fails

If we VT switch away between  picking a cursor surface and actually doing
the pageflip in drm_output_repaint(), we never set output->cursor_view to
NULL.  Then we unplug all the input devices and as the last pointer device
goes away we destroy the cursor surface.  Then when we switch back, we
call drm_output_set_cursor() with an invalid surface and crashes.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=73566
This commit is contained in:
Kristian Høgsberg 2014-01-23 16:25:06 -08:00
parent d500bf1ac9
commit b3955b0953

View file

@ -669,6 +669,7 @@ drm_output_repaint(struct weston_output *output_base,
return 0;
err_pageflip:
output->cursor_view = NULL;
if (output->next) {
drm_output_release_fb(output, output->next);
output->next = NULL;