Never try to unescape (http/dav) URIs
@seb128
Submitted by Sébastien Bacher Assigned to gvf..@..e.bugs
Link to original bug (#546256)
Description
the bug has been opened on https://bugs.launchpad.net/ubuntu/+source/rhythmbox/+bug/254617
Binary package hint: rhythmbox
Rhythmbox 0.11.6 crashes on initial startup after upgrade. The problem appears to be in the URI canonicalisation as this is the last message in the debug log:
(11:07:41) [0x96cb408] [rb_shell_constructor] rb-shell.c:1418: loading database (11:07:41) [0x96cb408] [rb_shell_constructor] rb-shell.c:1421: shell: syncing window state (11:07:41) [0xa4bbac0] [rhythmdb_tree_parser_start_element] rhythmdb-tree.c:379: loading database version 1.4 (140) (11:07:41) [0xa4bbac0] [rhythmdb_tree_parser_start_element] rhythmdb-tree.c:392: old version of rhythmdb, performing URI canonicalisation for all entries (DB version 1.4) zsh: segmentation fault rhythmbox -d --dry-run
The problem appears to be with a single podcast entry in the rhythmdb.xml. I'll attach the snipplet here.
0.11.6svn20080731-0ubuntu3"
the debug stracktrace:
"#0 g_mount_spec_canonicalize_path (path=0x0) at gmountspec.c:480
canon = <value optimized out>
start = <value optimized out>
p = <value optimized out>
q = <value optimized out>
#1 0xb577bcc3 in g_daemon_file_new (mount_spec=0x9727d18, path=0x0) at gdaemonfile.c:99
No locals.
#2 0xb5778f91 in g_daemon_vfs_get_file_for_uri (vfs=0x90aeaf0,
uri=0x9700d48 "http://feeds.feedburner.com/~r/omahm/~5/http%3A%2F%2Fbinaryzone.ziphoid.com%2FOMAHM_Show3_Follintastic.mp3") at gdaemonvfs.c:374
file = <value optimized out>
spec = (GMountSpec *) 0x9727d18
path = 0x0
#3 0xb732def0 in IA__g_vfs_get_file_for_uri (vfs=0x90aeaf0,
uri=0x9700d48 "http://feeds.feedburner.com/~r/omahm/~5/http%3A%2F%2Fbinaryzone.ziphoid.com%2FOMAHM_Show3_Follintastic.mp3") at /build/buildd/glib2.0-2.17.4/gio/gvfs.c:123
__PRETTY_FUNCTION__ = "IA__g_vfs_get_file_for_uri"
#4 0xb730e19f in IA__g_file_new_for_uri (
uri=0x9700d48 "http://feeds.feedburner.com/~r/omahm/~5/http%3A%2F%2Fbinaryzone.ziphoid.com%2FOMAHM_Show3_Follintastic.mp3") at /build/buildd/glib2.0-2.17.4/gio/gfile.c:4852
__PRETTY_FUNCTION__ = "IA__g_file_new_for_uri"
#5 0xb7f88039 in rb_canonicalise_uri (uri=0x0) at rb-file-helpers.c:713
file = <value optimized out>
result = <value optimized out>
__PRETTY_FUNCTION__ = "rb_canonicalise_uri"
#6 0xb7f757d3 in rhythmdb_tree_parser_end_element (ctx=0x9726670, name=0x96085f7 "location") at rhythmdb-tree.c:596
canon = <value optimized out>
value = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0,
v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
__FUNCTION__ = "rhythmdb_tree_parser_end_element"
__PRETTY_FUNCTION__ = "rhythmdb_tree_parser_end_element"
#7 0xb6f684ca in xmlParseEndTag1 (ctxt=0x96e5c38, line=10) at parser.c:7623
name = <value optimized out>
#8 0xb6f70052 in xmlParseElement__internal_alias (ctxt=0x96e5c38) at parser.c:8985
name = (const xmlChar *) 0x96085f7 "location"
prefix = <value optimized out>
URI = <value optimized out>
node_info = {node = 0xb6f6fb0f, begin_pos = 158519592, begin_line = 5, end_pos = 9, end_line = 36}
line = 10
tlen = <value optimized out>
ret = (xmlNodePtr) 0x0
nsNr = 0
#9 0xb6f703ed in xmlParseContent__internal_alias (ctxt=0x96e5c38) at parser.c:8789
cons = 0
#10 0xb6f6ff0a in xmlParseElement__internal_alias (ctxt=0x96e5c38) at parser.c:8959
name = (const xmlChar *) 0x96085bc "entry"
prefix = <value optimized out>
URI = <value optimized out>
node_info = {node = 0xb6f6fb0f, begin_pos = 165090360, begin_line = 3, end_pos = 2, end_line = 19}
line = 3
tlen = <value optimized out>
ret = (xmlNodePtr) 0x0
nsNr = 0
#11 0xb6f703ed in xmlParseContent__internal_alias (ctxt=0x96e5c38) at parser.c:8789
cons = 0"
Version: git master