Hi,
yes, it still works. I could reproduce the problem on a different hardware (Intel 855GM, i915) but only when using uvesafb (nomodeset on cmdline and uvesafb configuration in /etc/initramfs/modules).
diff --git a/src/libply-splash-core/ply-seat.c b/src/libply-splash-core/ply-seat.c index 2ac8bf7..0f533d5 100644 --- a/src/libply-splash-core/ply-seat.c +++ b/src/libply-splash-core/ply-seat.c @@ -102,6 +102,8 @@ add_text_displays (ply_seat_t *seat) { ply_text_display_t *display;
+ if (seat->terminal != NULL) + { if (!ply_terminal_is_open (seat->terminal)) { if (!ply_terminal_open (seat->terminal)) @@ -115,6 +117,12 @@ add_text_displays (ply_seat_t *seat) ply_trace ("adding text display for terminal %s", ply_terminal_get_name (seat->terminal));
+ } + else + { + ply_trace("seat->terminal == NULL"); + } + display = ply_text_display_new (seat->terminal); ply_list_append_data (seat->text_displays, display); }
From the log file:
[ply-seat.c:123] add_text_displays:seat->terminal == NULL
So seat->terminal is NULL which isn't checked in ply_terminal_is_open() and so plymouthd dereferences a NULL pointer.
Regards,
Lukas
Hi,
yes, it still works. I could reproduce the problem on a different hardware (Intel 855GM, i915) but only when using uvesafb (nomodeset on cmdline and uvesafb configuration in /etc/initramfs/ modules) .
diff --git a/src/libply- splash- core/ply- seat.c b/src/libply- splash- core/ply- seat.c splash- core/ply- seat.c splash- core/ply- seat.c text_display_ t *display;
index 2ac8bf7..0f533d5 100644
--- a/src/libply-
+++ b/src/libply-
@@ -102,6 +102,8 @@ add_text_displays (ply_seat_t *seat)
{
ply_
+ if (seat->terminal != NULL) is_open (seat->terminal))
ply_terminal_ get_name (seat->terminal));
+ {
if (!ply_terminal_
{
if (!ply_terminal_open (seat->terminal))
@@ -115,6 +117,12 @@ add_text_displays (ply_seat_t *seat)
ply_trace ("adding text display for terminal %s",
+ } "seat-> terminal == NULL"); display_ new (seat->terminal); list_append_ data (seat-> text_displays, display);
+ else
+ {
+ ply_trace(
+ }
+
display = ply_text_
ply_
}
From the log file:
[ply-seat.c:123] add_text_ displays: seat->terminal == NULL
So seat->terminal is NULL which isn't checked in ply_terminal_ is_open( ) and so plymouthd dereferences a NULL pointer.
Regards,
Lukas