[Pkg-utopia-commits] r3103 - in /packages/unstable/dbus-glib/debian: changelog patches/01-20884-proxy-manager-replace-name-owner.patch
smcv at users.alioth.debian.org
smcv at users.alioth.debian.org
Mon Apr 27 10:16:22 UTC 2009
Author: smcv
Date: Mon Apr 27 10:16:22 2009
New Revision: 3103
URL: http://svn.debian.org/wsvn/pkg-utopia/?sc=1&rev=3103
Log:
Apply my patch from upstream git to fix fd.o #20884
Apply my patch from upstream git to fix invalid memory accesses in
DBusGProxyManager after the first of a process's names is removed
(freedesktop.org #20884)
Added:
packages/unstable/dbus-glib/debian/patches/01-20884-proxy-manager-replace-name-owner.patch
Modified:
packages/unstable/dbus-glib/debian/changelog
Modified: packages/unstable/dbus-glib/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-utopia/packages/unstable/dbus-glib/debian/changelog?rev=3103&op=diff
==============================================================================
--- packages/unstable/dbus-glib/debian/changelog (original)
+++ packages/unstable/dbus-glib/debian/changelog Mon Apr 27 10:16:22 2009
@@ -1,8 +1,14 @@
-dbus-glib (0.80-4) unstable; urgency=low
-
+dbus-glib (0.80-4) UNRELEASED; urgency=low
+
+ [ Michael Biebl ]
* debian/control
- Changes section of libdbus-glib-1-2-dbg.
- Bump Standards-Version to 3.8.1. No further changes.
+
+ [ Simon McVittie ]
+ * Apply my patch from upstream git to fix invalid memory accesses in
+ DBusGProxyManager after the first of a process's names is removed
+ (freedesktop.org #20884)
-- Michael Biebl <biebl at debian.org> Sun, 19 Apr 2009 04:32:37 +0200
Added: packages/unstable/dbus-glib/debian/patches/01-20884-proxy-manager-replace-name-owner.patch
URL: http://svn.debian.org/wsvn/pkg-utopia/packages/unstable/dbus-glib/debian/patches/01-20884-proxy-manager-replace-name-owner.patch?rev=3103&op=file
==============================================================================
--- packages/unstable/dbus-glib/debian/patches/01-20884-proxy-manager-replace-name-owner.patch (added)
+++ packages/unstable/dbus-glib/debian/patches/01-20884-proxy-manager-replace-name-owner.patch Mon Apr 27 10:16:22 2009
@@ -1,0 +1,45 @@
+commit f36381131b6f410333a9a823a4fc131ac799394f
+Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
+Date: 2009-03-26 18:00:16 +0000
+
+ fd.o#20884: dbus_g_proxy_manager_replace_name_owner: don't leave freed memory in the hash table if the name was the owner's first
+
+ Here's a situation where this code would fail:
+
+ * an owner :1.42 owns a name com.Example and a name org.Example
+ * the owner_names hash table contains { :1.42 => c }, where
+ c is a GSList link with data = "com.Example", next = o and
+ o is a GSList link with data = "org.Example", next = NULL
+ * the name owner for com.Example changes so :1.42 no longer owns the
+ name
+ * initially, names == c
+ * g_slist_delete_link unlinks and frees c, and sets names = o
+ * but c is still in the hash table, so next time we look in the hash
+ table, we crash
+
+ The fix is to replace c with o in the owner_names hash table.
+
+diff --git a/dbus/dbus-gproxy.c b/dbus/dbus-gproxy.c
+index b379c20..572b7fb 100644
+--- a/dbus/dbus-gproxy.c
++++ b/dbus/dbus-gproxy.c
+@@ -753,9 +753,16 @@ dbus_g_proxy_manager_replace_name_owner (DBusGProxyManager *manager,
+
+ names = g_slist_delete_link (names, link);
+
+- if (names == NULL)
+- g_hash_table_remove (manager->owner_names, prev_owner);
+- }
++ if (names == NULL)
++ {
++ g_hash_table_remove (manager->owner_names, prev_owner);
++ }
++ else
++ {
++ g_hash_table_insert (manager->owner_names,
++ g_strdup (prev_owner), names);
++ }
++ }
+ }
+
+ if (new_owner[0] == '\0')
More information about the Pkg-utopia-commits
mailing list