diff options
author | Max Kellermann <max@duempel.org> | 2013-06-24 16:17:46 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-06-24 16:17:46 +0200 |
commit | ef48eca9cac875f65622daf500bd702e20d666f3 (patch) | |
tree | 52fe455c347fd0f0ab14b471e2482c17c8aed5e6 /src/OtherCommands.cxx | |
parent | 906d2fbadf075b7d8e3a5be7134a9bebb09b7285 (diff) | |
parent | e9e55b08127dc45b4c6045e1f42e34115086a521 (diff) | |
download | mpd-ef48eca9cac875f65622daf500bd702e20d666f3.tar.gz mpd-ef48eca9cac875f65622daf500bd702e20d666f3.tar.xz mpd-ef48eca9cac875f65622daf500bd702e20d666f3.zip |
Merge branch 'master' of git://git.musicpd.org/dk/mpd
Diffstat (limited to 'src/OtherCommands.cxx')
-rw-r--r-- | src/OtherCommands.cxx | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/OtherCommands.cxx b/src/OtherCommands.cxx index 07fbc8442..7f592ee9f 100644 --- a/src/OtherCommands.cxx +++ b/src/OtherCommands.cxx @@ -34,6 +34,7 @@ #include "ls.hxx" #include "Volume.hxx" #include "util/UriUtil.hxx" +#include "fs/Path.hxx" extern "C" { #include "stats.h" @@ -117,9 +118,16 @@ handle_lsinfo(Client *client, int argc, char *argv[]) if (strncmp(uri, "file:///", 8) == 0) { /* print information about an arbitrary local file */ const char *path_utf8 = uri + 7; + const Path path_fs = Path::FromUTF8(path_utf8); + + if (path_fs.IsNull()) { + command_error(client, ACK_ERROR_NO_EXIST, + "unsupported file name"); + return COMMAND_RETURN_ERROR; + } GError *error = NULL; - if (!client_allow_file(client, path_utf8, &error)) + if (!client_allow_file(client, path_fs, &error)) return print_error(client, error); struct song *song = song_file_load(path_utf8, NULL); |