aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2011-10-06 22:57:14 +0200
committerMax Kellermann <max@duempel.org>2011-10-06 22:57:14 +0200
commitfa7fa2a55f6ddd90e3eed274b0eb8d1e00abea9b (patch)
tree3b1d0f8636382e758f9f592e1398b67f8e1a0a56 /src
parent5c0576ca5519d525c6c383cd138da917b67a2810 (diff)
downloadmpd-fa7fa2a55f6ddd90e3eed274b0eb8d1e00abea9b.tar.gz
mpd-fa7fa2a55f6ddd90e3eed274b0eb8d1e00abea9b.tar.xz
mpd-fa7fa2a55f6ddd90e3eed274b0eb8d1e00abea9b.zip
playlist_song: allow references to songs outside the musicdir
When we have an absolute path that's not inside the music directory, allow loading it anyway, if we're in "secure" mode (i.e. the client is connected via UNIX socket).
Diffstat (limited to 'src')
-rw-r--r--src/playlist_song.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/playlist_song.c b/src/playlist_song.c
index afdc0cf9c..d40ef63cf 100644
--- a/src/playlist_song.c
+++ b/src/playlist_song.c
@@ -140,6 +140,12 @@ playlist_check_translate_song(struct song *song, const char *base_uri,
if (uri_has_scheme(uri)) {
dest = song_remote_new(uri);
g_free(uri);
+ } else if (g_path_is_absolute(uri) && secure) {
+ dest = song_file_load(uri, NULL);
+ if (dest == NULL) {
+ song_free(song);
+ return NULL;
+ }
} else {
dest = db_get_song(uri);
g_free(uri);