From 5d1df8e25c45ef5c54914a311d809088afdc15c7 Mon Sep 17 00:00:00 2001 From: "J. Alexander Treuman" Date: Sun, 16 Jul 2006 18:22:03 +0000 Subject: Fixing a whopping 4 memory leaks git-svn-id: https://svn.musicpd.org/mpd/trunk@4371 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/decode.c | 7 ++++++- src/ls.c | 2 +- src/playlist.c | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) (limited to 'src') 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; diff --git a/src/ls.c b/src/ls.c index dc36a888a..2c09f8b3a 100644 --- a/src/ls.c +++ b/src/ls.c @@ -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; -- cgit v1.2.3