Bug#766732: Caught in the act...

Simon McVittie smcv at debian.org
Tue Nov 18 15:21:26 UTC 2014


Control: reassign 766732 gvfs-backends

On 18/11/14 14:49, Brian Drummond wrote:
> Backtrace from the relevant thread in gvfsd-dav...

Reassigning to the package that owns gvfsd-dav.

> In particular, how would I
> make gdb display the "<optimized out>" bits?

You'd have to recompile gvfs without optimizations. But hopefully that
won't be necessary.

> Thread 4 (Thread 0x7f5926572700 (LWP 3882)):
> #0  0x00007f592fa8daca in strlen () from /lib/x86_64-linux-gnu/libc.so.6
> No symbol table info available.
> #1  0x000000000040bb0c in path_equal (a=a at entry=0x7f5914051960
> "/Music/Various Artists/100% Dance Hits/", b=<optimized out>, relax=1)
> at gvfsbackenddav.c:244
>         res = <optimized out>
>         a_len = <optimized out>
>         b_len = <optimized out>
>         ua = 0x0
>         ub = 0x7f5914054910 "/Music/Various Artists/"

Looking at the source code, ua = g_uri_unescape_string (a, "/"). So that
function has failed, returning NULL, and the code does not make any
attempt to cope with that failure; so we call strlen(NULL) which crashes.

a is "/Music/Various Artists/100% Dance Hits/" which is not a valid URI
path: if your folder on disk is called "100% Dance Hits" then the URI
should end with "/100%25 Dance Hits/".

So there are probably two bugs here:

* whatever software you are using to serve your music over DAV (what is
  it?) is encoding paths incorrectly; and
* gvfs isn't coping gracefully with that.

Regards,
    S



More information about the pkg-gnome-maintainers mailing list