summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEwald Snel <esnel@users.sourceforge.net>2003-01-08 14:42:46 +0000
committerEwald Snel <esnel@users.sourceforge.net>2003-01-08 14:42:46 +0000
commitd6dc947d057611d61d96649a8e07a60f893a9056 (patch)
treef13852afff710f5d413aa4d198ae7cd7891b40fc
parent87d711f532f36b5ffcab15cf474fd134abf5014b (diff)
downloadxine-lib-d6dc947d057611d61d96649a8e07a60f893a9056.tar.gz
xine-lib-d6dc947d057611d61d96649a8e07a60f893a9056.tar.bz2
Fix memory leak, don't use 'abort()'
CVS patchset: 3831 CVS date: 2003/01/08 14:42:46
-rw-r--r--src/demuxers/demux_real.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/demuxers/demux_real.c b/src/demuxers/demux_real.c
index ed1d5fec5..04a7ec05f 100644
--- a/src/demuxers/demux_real.c
+++ b/src/demuxers/demux_real.c
@@ -28,7 +28,7 @@
*
* Based on FFmpeg's libav/rm.c.
*
- * $Id: demux_real.c,v 1.30 2003/01/04 14:48:12 miguelfreitas Exp $
+ * $Id: demux_real.c,v 1.31 2003/01/08 14:42:46 esnel Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -406,7 +406,14 @@ static void real_parse_headers (demux_real_t *this) {
} else {
printf ("demux_real: error, unknown audio data header version %d\n",
version);
- abort();
+
+ free (mdpr->stream_name);
+ free (mdpr->mime_type);
+ free (mdpr->type_specific_data);
+ free (mdpr);
+
+ this->status = DEMUX_FINISHED;
+ return;
}
if (!strncmp (fourcc, "dnet", 4))
@@ -515,6 +522,9 @@ static void real_parse_headers (demux_real_t *this) {
}
+ free (mdpr->stream_name);
+ free (mdpr->mime_type);
+ free (mdpr->type_specific_data);
free (mdpr);
} else if (chunk_type == CONT_TAG) {