From 36984e9e8c7ccb33f43a9f096e848d28e532dc6e Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 1 Sep 2008 17:16:55 -0700 Subject: storedPlaylist: correctly expand path when writing Otherwise we'd be writing to whatever directory that mpd is running in. --- src/storedPlaylist.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/storedPlaylist.c') diff --git a/src/storedPlaylist.c b/src/storedPlaylist.c index a38511ea1..332f99456 100644 --- a/src/storedPlaylist.c +++ b/src/storedPlaylist.c @@ -60,26 +60,27 @@ static ListNode *nodeOfStoredPlaylist(List *list, int idx) return NULL; } -static int writeStoredPlaylistToPath(int fd, List *list, const char *fspath) +static int writeStoredPlaylistToPath(int fd, List *list, const char *utf8path) { ListNode *node; FILE *file; char *s; + char path_max_tmp[MPD_PATH_MAX]; - if (fspath == NULL) + if (!utf8path || !valid_playlist_name(fd, utf8path)) return -1; - while (!(file = fopen(fspath, "w")) && errno == EINTR); + utf8_to_fs_playlist_path(path_max_tmp, utf8path); + + while (!(file = fopen(path_max_tmp, "w")) && errno == EINTR); if (file == NULL) { commandError(fd, ACK_ERROR_NO_EXIST, "could not open file " - "\"%s\": %s", fspath, strerror(errno)); + "\"%s\": %s", path_max_tmp, strerror(errno)); return -1; } node = list->firstNode; while (node != NULL) { - char path_max_tmp[MPD_PATH_MAX]; - s = utf8_to_fs_charset(path_max_tmp, (char *)node->data); if (playlist_saveAbsolutePaths && !isValidRemoteUtf8Url(s)) s = rmp2amp_r(path_max_tmp, s); -- cgit v1.2.3