diff options
author | Warren Dukes <warren.dukes@gmail.com> | 2004-05-18 13:19:30 +0000 |
---|---|---|
committer | Warren Dukes <warren.dukes@gmail.com> | 2004-05-18 13:19:30 +0000 |
commit | 3a5a75cf87c5b952a946224a37cf9c1c6ba45d7f (patch) | |
tree | 318cb5be633d595c2235a45948b468b8a82a8a33 /src | |
parent | c51ad71efaa975c64f6ad31dce5578307a5cba7b (diff) | |
download | mpd-3a5a75cf87c5b952a946224a37cf9c1c6ba45d7f.tar.gz mpd-3a5a75cf87c5b952a946224a37cf9c1c6ba45d7f.tar.xz mpd-3a5a75cf87c5b952a946224a37cf9c1c6ba45d7f.zip |
fix a mem leak when unknow type in decodeStart()
git-svn-id: https://svn.musicpd.org/mpd/trunk@1063 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src')
-rw-r--r-- | src/decode.c | 5 | ||||
-rw-r--r-- | src/decode.h | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/decode.c b/src/decode.c index c990edc9e..49babb31f 100644 --- a/src/decode.c +++ b/src/decode.c @@ -238,9 +238,9 @@ void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) { 0 == strcmp(inStream.mime, "audio/mpeg"))) { ret = mp3_decode(cb,dc,&inStream); + break; } else ret = DECODE_ERROR_UNKTYPE; - break; #endif case DECODE_TYPE_FILE: #ifdef HAVE_MAD @@ -285,10 +285,11 @@ void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) { default: ret = DECODE_ERROR_UNKTYPE; } - if(ret<0) { + if(ret<0 || ret == DECODE_ERROR_UNKTYPE) { strncpy(pc->erroredFile, dc->file, MAXPATHLEN); pc->erroredFile[MAXPATHLEN] = '\0'; if(ret != DECODE_ERROR_UNKTYPE) dc->error = DECODE_ERROR_FILE; + else closeInputStream(&inStream); dc->start = 0; dc->stop = 0; dc->state = DECODE_STATE_STOP; diff --git a/src/decode.h b/src/decode.h index a766efd44..c21407b48 100644 --- a/src/decode.h +++ b/src/decode.h @@ -34,8 +34,8 @@ #define DECODE_STATE_DECODE 1 #define DECODE_ERROR_NOERROR 0 -#define DECODE_ERROR_UNKTYPE -10 -#define DECODE_ERROR_FILE -20 +#define DECODE_ERROR_UNKTYPE 10 +#define DECODE_ERROR_FILE 20 #define DECODE_SUFFIX_MP3 1 #define DECODE_SUFFIX_OGG 2 |