From 2df9d545defb19ef1ff47ac086a6f446dc462ae8 Mon Sep 17 00:00:00 2001 From: Mike Melanson Date: Sun, 26 Jan 2003 15:58:36 +0000 Subject: reject RIFF-CDXA files and remove CVS patchset: 4010 CVS date: 2003/01/26 15:58:36 --- src/demuxers/demux_mpgaudio.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/demuxers/demux_mpgaudio.c b/src/demuxers/demux_mpgaudio.c index cb5cad46a..6b006b880 100644 --- a/src/demuxers/demux_mpgaudio.c +++ b/src/demuxers/demux_mpgaudio.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_mpgaudio.c,v 1.89 2003/01/10 21:11:04 miguelfreitas Exp $ + * $Id: demux_mpgaudio.c,v 1.90 2003/01/26 15:58:36 tmmm Exp $ * * demultiplexer for mpeg audio (i.e. mp3) streams * @@ -30,7 +30,6 @@ #include #include #include -#include #include #include @@ -52,8 +51,10 @@ ( (long)(unsigned char)(ch3) | ( (long)(unsigned char)(ch2) << 8 ) | \ ( (long)(unsigned char)(ch1) << 16 ) | ( (long)(unsigned char)(ch0) << 24 ) ) -#define RIFF_TAG FOURCC_TAG('R', 'I', 'F', 'F') #define RIFF_CHECK_BYTES 1024 +#define RIFF_TAG FOURCC_TAG('R', 'I', 'F', 'F') +#define AVI_TAG FOURCC_TAG('A', 'V', 'I', ' ') +#define CDXA_TAG FOURCC_TAG('C', 'D', 'X', 'A') typedef struct { @@ -509,13 +510,13 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str /* skip the length */ input->seek(input, 4, SEEK_CUR); - /* disqualify the file if it is, in fact, an AVI file */ if (input->read(input, riff_check, 4) != 4) return NULL; - if ((riff_check[0] == 'A') && - (riff_check[1] == 'V') && - (riff_check[2] == 'I') && - (riff_check[3] == ' ')) + + /* disqualify the file if it is, in fact, an AVI file or has a CDXA + * marker */ + if ((BE_32(&riff_check[0]) == AVI_TAG) || + (BE_32(&riff_check[0]) == CDXA_TAG)) return NULL; /* skip 4 more bytes */ -- cgit v1.2.3