diff options
author | Max Kellermann <max@duempel.org> | 2009-01-01 19:17:44 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-01-01 19:17:44 +0100 |
commit | 80fa9183e4d30643b1e089d9b96f36a4b266276e (patch) | |
tree | efaa0e4579cb5b7fc6da6610f3485072f384c609 /src/playlist.c | |
parent | 886ed1b225d50e5e6c220e11b5800f45d36a5d37 (diff) | |
download | mpd-80fa9183e4d30643b1e089d9b96f36a4b266276e.tar.gz mpd-80fa9183e4d30643b1e089d9b96f36a4b266276e.tar.xz mpd-80fa9183e4d30643b1e089d9b96f36a4b266276e.zip |
mapper: allocate playlist path from heap
Don't pass a static buffer to map_spl_utf8_to_fs().
Diffstat (limited to '')
-rw-r--r-- | src/playlist.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/playlist.c b/src/playlist.c index 59a2a0dee..0c93f92b0 100644 --- a/src/playlist.c +++ b/src/playlist.c @@ -1203,17 +1203,19 @@ enum playlist_result savePlaylist(const char *utf8file) { FILE *fp; struct stat sb; - char path_max_tmp[MPD_PATH_MAX]; - const char *path; + char *path; if (!is_valid_playlist_name(utf8file)) return PLAYLIST_RESULT_BAD_NAME; - path = map_spl_utf8_to_fs(utf8file, path_max_tmp); - if (!stat(path, &sb)) + path = map_spl_utf8_to_fs(utf8file); + if (!stat(path, &sb)) { + g_free(path); return PLAYLIST_RESULT_LIST_EXISTS; + } while (!(fp = fopen(path, "w")) && errno == EINTR); + g_free(path); if (fp == NULL) return PLAYLIST_RESULT_ERRNO; |