audio/player: Fix crash when current item UID is set to 0

Apparently some stacks set the current UID to 0 when paused/stopped
which causes the following:

bluetoothd[23185]: profiles/audio/player.c:media_player_set_playlist_item() 0
bluetoothd[23185]: profiles/audio/player.c:media_folder_create_item() (null) type audio uid 0
process 23185: arguments to dbus_message_iter_append_basic() were incorrect, assertion "_dbus_check_is_valid_path (*string_p)" failed in file dbus-message.c line 2531.
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

UID 0 is not a valid UID according to the spec so the code should not
attempt to create any object to represent it.
This commit is contained in:
Luiz Augusto von Dentz 2013-06-26 13:36:57 +03:00 committed by Johan Hedberg
parent 550dab5ce2
commit c6b9a502a0

View File

@ -1845,7 +1845,7 @@ struct media_item *media_player_set_playlist_item(struct media_player *mp,
DBG("%" PRIu64 "", uid);
if (folder == NULL)
if (folder == NULL || uid == 0)
return NULL;
item = media_folder_create_item(mp, folder, NULL,