commit f8ea4f9f805a9b463cb9ef1d2b0053f2ca1ecab7
Author: Andrew Potter <agpotter@gmail.com>
Date:   Wed Nov 14 21:18:24 2012 -0800

    droute: Fix memory leak in path cleanup
    
    Frees all allocated memory.
    
    g_ptr_array_free(..., FALSE) was probably being called to avoid a destructor being called on the elements of the array that point to static data. But that method returns an array that must still be g_free()d.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=688363

diff --git a/droute/droute.c b/droute/droute.c
index 1567fc7..5d9696d 100644
--- a/droute/droute.c
+++ b/droute/droute.c
@@ -107,7 +107,7 @@ path_new (DRouteContext *cnx,
     new_path->properties = g_hash_table_new_full ((GHashFunc)str_pair_hash,
                                                   str_pair_equal,
                                                   g_free,
-                                                  NULL);
+                                                  g_free);
 
     new_path->introspect_children_cb = introspect_children_cb;
     new_path->introspect_children_data = introspect_children_data;
@@ -123,7 +123,7 @@ path_free (DRoutePath *path, gpointer user_data)
     g_free (path->path);
     g_string_chunk_free  (path->chunks);
     g_ptr_array_free     (path->interfaces, TRUE);
-    g_ptr_array_free     (path->introspection, FALSE);
+    g_free(g_ptr_array_free     (path->introspection, FALSE));
     g_hash_table_destroy (path->methods);
     g_hash_table_destroy (path->properties);
 }
