From 3f897940d90c579a884b13c613440bc85aabda18 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Wed, 19 Aug 2015 13:52:47 +0300 Subject: [PATCH] compositor-fbdev: fix VT switching crash This bug was introduced in 954f183e2f9891b241c1efc0ea61ed56019a4326. The session_notify() data was accidentally cast to fbdev_backend while it is weston_compositor. This was possibly due to the code before the mentioned commit casting data directly to fbdev_compositor without going through the intended type first, which worked only because weston_compositor was the first member in struct fbdev_compositor. Fix the casts to be the right way around. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91654 Cc: nerdopolis1@verizon.net Cc: Giulio Camuffo Signed-off-by: Pekka Paalanen Reviewed-by: Derek Foreman --- src/compositor-fbdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compositor-fbdev.c b/src/compositor-fbdev.c index 051a381a..a5c79476 100644 --- a/src/compositor-fbdev.c +++ b/src/compositor-fbdev.c @@ -756,8 +756,8 @@ fbdev_backend_destroy(struct weston_compositor *base) static void session_notify(struct wl_listener *listener, void *data) { - struct fbdev_backend *backend = data; - struct weston_compositor *compositor = backend->compositor; + struct weston_compositor *compositor = data; + struct fbdev_backend *backend = to_fbdev_backend(compositor); struct weston_output *output; if (compositor->session_active) {