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
Name: plymouth
Version: 0.8.8
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2+
Group: System Environment/Base
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-utils < 0.8.4-0.20101119.4
Patch0: fix-crash.patch
%description
Plymouth provides an attractive graphical boot animation in
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
%setup -q
%patch0 -p1 -b .fix-crash
# Change the default theme
sed -i -e 's/fade-in/charge/g' src/plymouthd.defaults
@ -504,6 +507,10 @@ fi
%defattr(-, root, root)
%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
- Latest upstream release
- includes systemd fixes and system update fixes