Issue #1 resolved

Crashes VLC 2.0.0 (MPRIS 2)

Anonymous created an issue

The MPRIS-2 backend sends a NULL interface, which

1] causes VLC to crash. I already filed a bug @ https://trac.videolan.org/vlc/ticket/6237

2] violates DBus (I think) and MPRIS specifications

Attached files:

playerdo.log.txt: playerdo backtrace output of dbus-monitor

As a quick summary this is the specific invalid DBus call that playerdo sends: {{{ method call sender=:1.544 -> dest=:1.539 serial=15 path=/org/mpris/MediaPlayer2; interface=(null); member=PlayPause }}}

And this is what happens when I try to duplicate it with dbus-send: {{{ $ dbus-send --type=method_call --print-reply --dest=org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 NULL.PlayPause process 27176: arguments to dbus_message_new_method_call() were incorrect, assertion "interface == NULL || _dbus_check_is_valid_interface (interface)" failed in file dbus-message.c line 1206. This is normally a bug in some application using the D-Bus library. D-Bus not built with -rdynamic so unable to print a backtrace Aborted

}}}

Comments (4)

  1. Anonymous

    I put the patch @ http://hpaste.org/64328 - just keep in mind that hpaste likes to strip EOF newlines.

    Tested working. It also makes sense, since self.player is only used for accessing the player interface at PLAYER_INTERFACE_NAME

    Just in case the paste expires before you see this: (possible bad formatting)

    --- a/playerdo/backends/mpris2.py       Wed Nov 09 00:34:13 2011 +0000
    +++ b/playerdo/backends/mpris2.py       Sat Feb 25 14:59:10 2012 -0500
    @@ -83,7 +83,7 @@
             try:
                 return self._player
             except AttributeError:
    -            obj = DBusObject(self.bus_name, PLAYER_OBJECT_NAME)
    +            obj = DBusObject(self.bus_name, PLAYER_OBJECT_NAME, PLAYER_INTERFACE_NAME)
                 self._player = obj
                 return obj
    
    
  2. Luke Plant repo owner

    I can't verify the problem with VLC, but I'll take your word for it. The patch certainly doesn't break anything for the other MPRIS2 clients I've tried so I'll commit very shortly, and probably issue a point release.

    Thanks for taking the time to file this bug, and for the fix!

    It's kinda nice to know that someone uses this actually...

  3. Log in to comment