aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ. Alexander Treuman <jat@spatialrift.net>2006-07-16 18:22:03 +0000
committerJ. Alexander Treuman <jat@spatialrift.net>2006-07-16 18:22:03 +0000
commit5d1df8e25c45ef5c54914a311d809088afdc15c7 (patch)
treedeeb8a420e5746ee2aecb02e619fc85e3096fc6a
parent8d630f30e89646c0a6f225089cb8325af0fbf62e (diff)
downloadmpd-5d1df8e25c45ef5c54914a311d809088afdc15c7.tar.gz
mpd-5d1df8e25c45ef5c54914a311d809088afdc15c7.tar.xz
mpd-5d1df8e25c45ef5c54914a311d809088afdc15c7.zip
Fixing a whopping 4 memory leaks
git-svn-id: https://svn.musicpd.org/mpd/trunk@4371 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-rw-r--r--src/decode.c7
-rw-r--r--src/ls.c2
-rw-r--r--src/playlist.c4
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;
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;