diff options
-rw-r--r-- | src/decode.c | 7 | ||||
-rw-r--r-- | src/ls.c | 2 | ||||
-rw-r--r-- | src/playlist.c | 4 |
3 files changed, 9 insertions, 4 deletions
diff --git a/src/decode.c b/src/decode.c index 544880f57..db780dffe 100644 --- a/src/decode.c +++ b/src/decode.c @@ -261,11 +261,16 @@ static void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * InputStream inStream; InputPlugin * plugin = NULL; char * path; + char * relativePath; if(isRemoteUrl(pc->utf8url)) { path = utf8StrToLatin1Dup(pc->utf8url); } - else path = strdup(rmp2amp(utf8ToFsCharset(pc->utf8url))); + else { + relativePath = utf8ToFsCharset(pc->utf8url); + path = strdup(rmp2amp(relativePath)); + free(relativePath); + } if(!path) { dc->error = DECODE_ERROR_FILE; @@ -111,7 +111,7 @@ int lsPlaylists(FILE * fp, char * utf8path) { char s[MAXPATHLEN+1]; List * list = NULL; ListNode * node = NULL; - char * path = strdup(utf8ToFsCharset(utf8path)); + char * path = utf8ToFsCharset(utf8path); char * actualPath = rpp2app(path); int actlen = strlen(actualPath)+1; int maxlen = MAXPATHLEN-actlen; diff --git a/src/playlist.c b/src/playlist.c index 32a191bee..cf7ff9759 100644 --- a/src/playlist.c +++ b/src/playlist.c @@ -1310,7 +1310,7 @@ int savePlaylist(FILE * fp, char * utf8file) { return -1; } - file = strdup(utf8ToFsCharset(utf8file)); + file = utf8ToFsCharset(utf8file); rfile = malloc(strlen(file)+strlen(".")+ strlen(PLAYLIST_FILE_SUFFIX)+1); @@ -1415,7 +1415,7 @@ static int PlaylistIterFunc(FILE * fp, char * utf8file, void (*IterFunc)(FILE *f FILE * fileP; char s[MAXPATHLEN+1]; int slength = 0; - char * temp = strdup(utf8ToFsCharset(utf8file)); + char * temp = utf8ToFsCharset(utf8file); char * rfile = malloc(strlen(temp)+strlen(".")+ strlen(PLAYLIST_FILE_SUFFIX)+1); char * actualFile; |