rpms/xfce4-power-manager/F-11 xfce4-power-manager-0.8.3.1-fix-segfault-in-xfpm_session_set_client_id.patch, NONE, 1.1 xfce4-power-manager.spec, 1.12, 1.13
Christoph Wickert
cwickert at fedoraproject.org
Wed Sep 9 17:43:54 UTC 2009
Author: cwickert
Update of /cvs/pkgs/rpms/xfce4-power-manager/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv31872/F-11
Modified Files:
xfce4-power-manager.spec
Added Files:
xfce4-power-manager-0.8.3.1-fix-segfault-in-xfpm_session_set_client_id.patch
Log Message:
* Wed Sep 09 2009 Christoph Wickert <cwickert at fedoraproject.org> - 0.8.3.1-2
- Fix segfault in xfpm_session_set_client_id
xfce4-power-manager-0.8.3.1-fix-segfault-in-xfpm_session_set_client_id.patch:
xfpm-main.c | 2 ++
xfpm-session.c | 15 ++++++++++++---
xfpm-session.h | 3 +++
3 files changed, 17 insertions(+), 3 deletions(-)
--- NEW FILE xfce4-power-manager-0.8.3.1-fix-segfault-in-xfpm_session_set_client_id.patch ---
diff --git a/src/xfpm-main.c b/src/xfpm-main.c
index 9a20d45..3004567 100644
--- a/src/xfpm-main.c
+++ b/src/xfpm-main.c
@@ -82,6 +82,8 @@ xfpm_start (DBusGConnection *bus)
if ( client_id != NULL )
xfpm_session_set_client_id (session, client_id);
+
+ xfpm_session_real_init (session);
manager = xfpm_manager_new (bus);
diff --git a/src/xfpm-session.c b/src/xfpm-session.c
index 38ede11..1daed15 100644
--- a/src/xfpm-session.c
+++ b/src/xfpm-session.c
@@ -59,6 +59,7 @@ struct XfpmSessionPrivate
{
SessionClient *client;
gboolean managed;
+ gboolean initted;
};
enum
@@ -117,6 +118,7 @@ xfpm_session_init (XfpmSession *session)
session->priv->client = NULL;
session->priv->managed = FALSE;
+ session->priv->initted = FALSE;
restart_command = g_new (gchar *, 3);
restart_command[0] = g_strdup ("xfce4-power-manager");
@@ -140,7 +142,6 @@ xfpm_session_init (XfpmSession *session)
return;
}
- session->priv->managed = session_init (session->priv->client);
session->priv->client->die = xfpm_session_die;
}
@@ -219,13 +220,21 @@ xfpm_session_new (void)
return XFPM_SESSION (xfpm_session_object);
}
+void xfpm_session_real_init (XfpmSession *session)
+{
+ session->priv->managed = session_init (session->priv->client);
+ session->priv->initted = TRUE;
+}
+
void xfpm_session_set_client_id (XfpmSession *session, const gchar *client_id)
{
g_return_if_fail (XFPM_IS_SESSION (session));
+ g_return_if_fail (session->priv->initted == FALSE);
- if ( G_UNLIKELY (session->priv->client == NULL) )
+ if ( G_UNLIKELY (session->priv->client == NULL || session->priv->managed == FALSE) )
return;
+ TRACE ("Setting client id : %s\n", client_id);
client_session_set_client_id (session->priv->client, client_id);
}
@@ -233,7 +242,7 @@ void xfpm_session_quit (XfpmSession *session)
{
g_return_if_fail (XFPM_IS_SESSION (session));
- if ( !session->priv->managed)
+ if ( G_UNLIKELY (session->priv->client == NULL || session->priv->managed == FALSE) )
return;
client_session_set_restart_style (session->priv->client, SESSION_RESTART_NEVER);
diff --git a/src/xfpm-session.h b/src/xfpm-session.h
index 133d705..e40b13a 100644
--- a/src/xfpm-session.h
+++ b/src/xfpm-session.h
@@ -47,8 +47,11 @@ typedef struct
} XfpmSessionClass;
GType xfpm_session_get_type (void) G_GNUC_CONST;
+
XfpmSession *xfpm_session_new (void);
+void xfpm_session_real_init (XfpmSession *session);
+
void xfpm_session_set_client_id (XfpmSession *session,
const gchar *client_id);
Index: xfce4-power-manager.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xfce4-power-manager/F-11/xfce4-power-manager.spec,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- xfce4-power-manager.spec 9 Aug 2009 16:22:00 -0000 1.12
+++ xfce4-power-manager.spec 9 Sep 2009 17:43:53 -0000 1.13
@@ -1,6 +1,6 @@
Name: xfce4-power-manager
Version: 0.8.3.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Power management for the Xfce desktop environment
Group: User Interface/Desktops
@@ -8,6 +8,8 @@ License: GPLv2+
URL: http://goodies.xfce.org/projects/applications/%{name}
Source0: http://archive.xfce.org/src/apps/%{name}/0.8/%{name}-%{version}.tar.bz2
Patch0: %{name}-0.8.2-dpmsconst.patch
+# from upstream's git rev 3004567
+Patch1: %{name}-0.8.3.1-fix-segfault-in-xfpm_session_set_client_id.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: xfconf-devel >= 4.6.0
@@ -30,6 +32,7 @@ preferences.
%prep
%setup -q
+%patch1 -p1 -b .segfault
%if 0%{?fedora} >= 12
%patch0 -b .dpmsstr
%endif
@@ -84,6 +87,9 @@ gtk-update-icon-cache %{_datadir}/icons/
%changelog
+* Wed Sep 09 2009 Christoph Wickert <cwickert at fedoraproject.org> - 0.8.3.1-2
+- Fix segfault in xfpm_session_set_client_id
+
* Sun Aug 09 2009 Christoph Wickert <cwickert at fedoraproject.org> - 0.8.3.1-1
- Update to 0.8.3.1
More information about the fedora-extras-commits
mailing list