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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user