1
0
forked from rpms/plymouth

- Fix crash when deactivating multiple times

Related: #870695
This commit is contained in:
Ray Strode 2012-11-01 17:26:42 -04:00
parent 321da5a86e
commit 767da6cc7e
2 changed files with 76 additions and 1 deletions

68
fix-crash.patch Normal file
View File

@ -0,0 +1,68 @@
From 6ccedf7b6ecdc8314ed97355cfe5499fffb13a1e Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 1 Nov 2012 17:04:33 -0400
Subject: [PATCH 1/2] main: if deactivate when already deactivated return
immediately
We were trying to ignore second deactivate requests, but
were instead crashing because we're trying to use a nullified
trigger.
This commit makes sure things don't go crashy when a user
does "plymouth deactivate" on an already deactivated plymouthd.
---
src/main.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/main.c b/src/main.c
index 88e5002..60ca28f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1135,7 +1135,13 @@ static void
on_deactivate (state_t *state,
ply_trigger_t *deactivate_trigger)
{
- if ((state->deactivate_trigger != NULL) || state->is_inactive)
+ if (state->is_inactive)
+ {
+ ply_trigger_pull (deactivate_trigger, NULL);
+ return;
+ }
+
+ if (state->deactivate_trigger != NULL)
{
ply_trigger_add_handler (state->deactivate_trigger,
(ply_trigger_handler_t)
--
1.7.12.1
From b3548ebaf76d222f56d6a7b34c5940b930d47609 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 1 Nov 2012 17:16:07 -0400
Subject: [PATCH 2/2] two-step: don't update progress when idle
We've already reach a state where we aren't drawing anymore, etc,
so don't update progress and potentially fire off animations
that won't be seen.
---
src/plugins/splash/two-step/plugin.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c
index 2998beb..541a108 100644
--- a/src/plugins/splash/two-step/plugin.c
+++ b/src/plugins/splash/two-step/plugin.c
@@ -1067,6 +1067,9 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin,
if (plugin->state != PLY_BOOT_SPLASH_DISPLAY_NORMAL)
return;
+ if (plugin->is_idle)
+ return;
+
if (percent_done >= SHOW_ANIMATION_PERCENT)
{
if (plugin->stop_trigger == NULL)
--
1.7.12.1

View File

@ -6,7 +6,7 @@
Summary: Graphical Boot Animation and Logger Summary: Graphical Boot Animation and Logger
Name: plymouth Name: plymouth
Version: 0.8.8 Version: 0.8.8
Release: 1%{?dist} Release: 2%{?dist}
License: GPLv2+ License: GPLv2+
Group: System Environment/Base Group: System Environment/Base
Source0: http://freedesktop.org/software/plymouth/releases/%{name}-%{version}.tar.bz2 Source0: http://freedesktop.org/software/plymouth/releases/%{name}-%{version}.tar.bz2
@ -33,6 +33,8 @@ Obsoletes: plymouth-theme-pulser < 0.7.0-0.2009.05.08.2
Obsoletes: plymouth-gdm-hooks < 0.8.4-0.20101119.4 Obsoletes: plymouth-gdm-hooks < 0.8.4-0.20101119.4
Obsoletes: plymouth-utils < 0.8.4-0.20101119.4 Obsoletes: plymouth-utils < 0.8.4-0.20101119.4
Patch0: fix-crash.patch
%description %description
Plymouth provides an attractive graphical boot animation in Plymouth provides an attractive graphical boot animation in
place of the text messages that normally get shown. Text place of the text messages that normally get shown. Text
@ -240,6 +242,7 @@ Plymouth. It features a small spinner on a dark background.
%prep %prep
%setup -q %setup -q
%patch0 -p1 -b .fix-crash
# Change the default theme # Change the default theme
sed -i -e 's/fade-in/charge/g' src/plymouthd.defaults sed -i -e 's/fade-in/charge/g' src/plymouthd.defaults
@ -504,6 +507,10 @@ fi
%defattr(-, root, root) %defattr(-, root, root)
%changelog %changelog
* Thu Nov 01 2012 Ray Strode <rstrode@redhat.com> 0.8.8-2
- Fix crash when deactivating multiple times
Related: #870695
* Fri Oct 26 2012 Ray Strode <rstrode@redhat.com> 0.8.8-1 * Fri Oct 26 2012 Ray Strode <rstrode@redhat.com> 0.8.8-1
- Latest upstream release - Latest upstream release
- includes systemd fixes and system update fixes - includes systemd fixes and system update fixes