From 5aa1afe69344aa6b6be5ac55c79fce14e1f79d53 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 16 Dec 2008 21:23:29 +0100 Subject: command: reject unsupported URI schemes When a client-specified URI has a scheme which is not supported, do not try to open it as a local file, but provide a meaningful error message. --- src/command.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/command.c') diff --git a/src/command.c b/src/command.c index bc5273637..9793830c1 100644 --- a/src/command.c +++ b/src/command.c @@ -450,6 +450,12 @@ handle_add(struct client *client, G_GNUC_UNUSED int argc, char *argv[]) if (isRemoteUrl(path)) return addToPlaylist(path, NULL); + if (uri_has_scheme(path)) { + command_error(client, ACK_ERROR_NO_EXIST, + "unsupported URI scheme"); + return COMMAND_RETURN_ERROR; + } + result = addAllIn(path); if (result == (enum playlist_result)-1) { command_error(client, ACK_ERROR_NO_EXIST, @@ -1223,7 +1229,11 @@ handle_playlistadd(struct client *client, G_GNUC_UNUSED int argc, char *argv[]) if (isRemoteUrl(path)) result = spl_append_uri(path, playlist); - else + else if (uri_has_scheme(path)) { + command_error(client, ACK_ERROR_NO_EXIST, + "unsupported URI scheme"); + return COMMAND_RETURN_ERROR; + } else result = addAllInToStoredPlaylist(path, playlist); if (result == (enum playlist_result)-1) { -- cgit v1.2.3