From 84eb4381db85877a9a56b35994e6c10d43e46ebe Mon Sep 17 00:00:00 2001 Message-Id: <84eb4381db85877a9a56b35994e6c10d43e46ebe.1498038081.git.hahn@univention.de> From: Ray Strode Date: Mon, 14 Jul 2014 08:04:54 -0400 Subject: [PATCH] seat: be a little more forgiving in the case there's no open terminal Organization: Univention GmbH, Bremen, Germany We can end up in a situation where a seat object doesn't have a terminal associated with it. In that case we shouldn't crash, but continue on with no input available for that seat. https://bugs.freedesktop.org/show_bug.cgi?id=80553 --- src/libply-splash-core/ply-seat.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) Index: plymouth-0.9.0/src/libply-splash-core/ply-seat.c =================================================================== --- plymouth-0.9.0.orig/src/libply-splash-core/ply-seat.c +++ plymouth-0.9.0/src/libply-splash-core/ply-seat.c @@ -154,14 +154,28 @@ ply_seat_open (ply_seat_t *seat add_pixel_displays (seat); } - else + else if (seat->terminal != NULL) { seat->keyboard = ply_keyboard_new_for_terminal (seat->terminal); } - add_text_displays (seat); + if (seat->terminal != NULL) + { + add_text_displays (seat); + } + else + { + ply_trace ("not adding text display for seat, since seat has no associated terminal"); + } - ply_keyboard_watch_for_input (seat->keyboard); - seat->keyboard_active = true; + if (seat->keyboard != NULL) + { + ply_keyboard_watch_for_input (seat->keyboard); + seat->keyboard_active = true; + } + else + { + ply_trace ("not watching seat for input"); + } return true; }