diff --git a/gtk/xdgmime/ChangeLog b/gtk/xdgmime/ChangeLog index 015e3c2403..7acd74ed92 100644 --- a/gtk/xdgmime/ChangeLog +++ b/gtk/xdgmime/ChangeLog @@ -1,3 +1,9 @@ +2007-04-09 Matthias Clasen + + * xdgmimeglob.c (_xdg_glob_hash_insert_text): Duplicate the + mime_type when storing it in a hash node, to avoid leaks. + Update all callers. + 2007-01-07 Matthias Clasen * xdgmimecache.c (cache_glob_node_lookup_suffix): Don't return "" diff --git a/gtk/xdgmime/xdgmimeglob.c b/gtk/xdgmime/xdgmimeglob.c index 95d9587ff4..3aad6113c7 100644 --- a/gtk/xdgmime/xdgmimeglob.c +++ b/gtk/xdgmime/xdgmimeglob.c @@ -263,7 +263,7 @@ _xdg_glob_hash_insert_text (XdgGlobHashNode *glob_hash_node, { child = _xdg_glob_hash_node_new (); child->character = '\000'; - child->mime_type = mime_type; + child->mime_type = strdup (mime_type); child->child = NULL; child->next = node->child; node->child = child; @@ -272,7 +272,7 @@ _xdg_glob_hash_insert_text (XdgGlobHashNode *glob_hash_node, } else { - node->mime_type = mime_type; + node->mime_type = strdup (mime_type); } } else @@ -477,7 +477,7 @@ _xdg_glob_hash_append_glob (XdgGlobHash *glob_hash, glob_hash->literal_list = _xdg_glob_list_append (glob_hash->literal_list, strdup (glob), strdup (mime_type)); break; case XDG_GLOB_SIMPLE: - glob_hash->simple_node = _xdg_glob_hash_insert_text (glob_hash->simple_node, glob + 1, strdup (mime_type)); + glob_hash->simple_node = _xdg_glob_hash_insert_text (glob_hash->simple_node, glob + 1, mime_type); break; case XDG_GLOB_FULL: glob_hash->full_list = _xdg_glob_list_append (glob_hash->full_list, strdup (glob), strdup (mime_type));