[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