summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@gentoo.org>2011-04-16 02:07:59 +0530
committerNirbheek Chauhan <nirbheek@gentoo.org>2011-04-16 02:08:05 +0530
commit1bea6329472ece48360f39d2b9f365380dfeff97 (patch)
treeb6b38a22b44976fb243f19a6746127e0258fa19d /sys-apps
parentgnome-base/gdm: fix bug 261339, bug 288852, bug 284053, remove old cruft (diff)
downloadgnome-1bea6329472ece48360f39d2b9f365380dfeff97.tar.gz
gnome-1bea6329472ece48360f39d2b9f365380dfeff97.tar.bz2
gnome-1bea6329472ece48360f39d2b9f365380dfeff97.zip
sys-apps/accountsservice: fix crash with nameless user accounts
https://bugs.freedesktop.org/show_bug.cgi?id=35872
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/accountsservice/Manifest3
-rw-r--r--sys-apps/accountsservice/accountsservice-0.6.6-r3.ebuild (renamed from sys-apps/accountsservice/accountsservice-0.6.6-r2.ebuild)10
-rw-r--r--sys-apps/accountsservice/files/accountsservice-fix-nameless-users-crash.patch29
3 files changed, 34 insertions, 8 deletions
diff --git a/sys-apps/accountsservice/Manifest b/sys-apps/accountsservice/Manifest
index f363e1ef..b03e79cd 100644
--- a/sys-apps/accountsservice/Manifest
+++ b/sys-apps/accountsservice/Manifest
@@ -1,3 +1,4 @@
+AUX accountsservice-fix-nameless-users-crash.patch 1275 RMD160 e435b073ace904e2e9edaa50a5e50c366b32f352 SHA1 46c19b0cf393561721ffaa838f24dc9b28ec1ca9 SHA256 5f95e4e2c7a38921957f31fd8d73d077d827b8cdb6b262bc6e9bb32621a0e0e6
AUX accountsservice-fix-useradd.patch 825 RMD160 389061b5188afd4a54de160e83df21a0a04c7988 SHA1 bcf95dbd19b216c3b2bf881aeeaf747ee4ef36a1 SHA256 2cb0ae82821e7119edb3905cfb7067c7093351322adaff7b814c7e816291e7af
DIST accountsservice-0.6.6.tar.bz2 335056 RMD160 1627275908ac7a7eb0fca34e48c138a146254c9e SHA1 925b14d57dd3cdd70da300cf030dea3c5c875fdb SHA256 b620c4f6b453892410e4823634674c7c0bdd9735d96ff6fdc5d236cc1b814367
-EBUILD accountsservice-0.6.6-r2.ebuild 1416 RMD160 b629c143ee6acdfa97ae9d3d9bcd0d585f3d4a68 SHA1 45c9fa7d51d8aa91e33248cf0af3d18874a70045 SHA256 49d1fc8dc2f26c3dee1950101e83d86dce76f585607f65543b908fe6640b15f1
+EBUILD accountsservice-0.6.6-r3.ebuild 1377 RMD160 99ae4a54fdec61847ef1766a5584e2b0c5c5bb85 SHA1 23bb594687bd575abf691d4b3a9974cd7540789a SHA256 00a17869d3cc3ef3b3c24421b81ebddd3700a5379f3c158b74ff2ba8ddcccd21
diff --git a/sys-apps/accountsservice/accountsservice-0.6.6-r2.ebuild b/sys-apps/accountsservice/accountsservice-0.6.6-r3.ebuild
index db69a02c..02306292 100644
--- a/sys-apps/accountsservice/accountsservice-0.6.6-r2.ebuild
+++ b/sys-apps/accountsservice/accountsservice-0.6.6-r3.ebuild
@@ -50,12 +50,8 @@ src_prepare() {
# Taken from upstream trunk, remove for next release
epatch "${FILESDIR}/${PN}-fix-useradd.patch"
- gnome2_src_prepare
-}
-
-src_install() {
- gnome2_src_install
+ # Taken from upstream trunk, remove for next release
+ epatch "${FILESDIR}/${PN}-fix-nameless-users-crash.patch"
- # Install directories for icons/configuration, bug 360175
- #dodir /var/lib/AccountsService/{users,icons} || die
+ gnome2_src_prepare
}
diff --git a/sys-apps/accountsservice/files/accountsservice-fix-nameless-users-crash.patch b/sys-apps/accountsservice/files/accountsservice-fix-nameless-users-crash.patch
new file mode 100644
index 00000000..28e3f029
--- /dev/null
+++ b/sys-apps/accountsservice/files/accountsservice-fix-nameless-users-crash.patch
@@ -0,0 +1,29 @@
+From 74c01ff9e3a3b00810ae69db2f2d089b68c5220a Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Fri, 15 Apr 2011 16:24:51 +0000
+Subject: Don't crash when removing nameless users
+
+Every person had in the beginning one only proper name, except the savages
+of Mount Atlas in Barbary, which were reported to be both nameless and
+dreamless.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=35872
+---
+diff --git a/src/libaccountsservice/act-user-manager.c b/src/libaccountsservice/act-user-manager.c
+index 4e25bf9..7202b07 100644
+--- a/src/libaccountsservice/act-user-manager.c
++++ b/src/libaccountsservice/act-user-manager.c
+@@ -732,7 +732,10 @@ remove_user (ActUserManager *manager,
+ if (act_user_get_object_path (user) != NULL) {
+ g_hash_table_remove (manager->priv->users_by_object_path, act_user_get_object_path (user));
+ }
+- g_hash_table_remove (manager->priv->users_by_name, act_user_get_user_name (user));
++ if (act_user_get_user_name (user) != NULL) {
++ g_hash_table_remove (manager->priv->users_by_name, act_user_get_user_name (user));
++
++ }
+
+ if (manager->priv->is_loaded) {
+ g_signal_emit (manager, signals[USER_REMOVED], 0, user);
+--
+cgit v0.8.3-6-g21f6