diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2009-04-02 03:54:35 +0100 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2009-04-02 03:54:35 +0100 |
commit | 97cdf31e3a618e2b4dcbd5ddf79dd8bcfc3a6533 (patch) | |
tree | 15a62c771ff3bf34d5f3fa2edd90bd4ec74ac6f4 | |
parent | 5377b8eeefd5f28869098d70b674df663dfd807b (diff) | |
download | xine-lib-97cdf31e3a618e2b4dcbd5ddf79dd8bcfc3a6533.tar.gz xine-lib-97cdf31e3a618e2b4dcbd5ddf79dd8bcfc3a6533.tar.bz2 |
ID3v2 tags with zero-length content are allowed.
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | src/demuxers/id3.c | 6 |
2 files changed, 4 insertions, 3 deletions
@@ -8,6 +8,7 @@ xine-lib (1.1.17) 2009-??-?? * Fix build with libavutil >= 50.0.0. * Fix segfaults when playing VCDs. * Fix calculation of frame duration for ffmpeg-decoded formats. + * Don't assume that ID3v2 tags with no content mean "end of ID3 data". xine-lib (1.1.16.2) 2009-02-10 * Build fixes related to ImageMagick 6.4 & later. diff --git a/src/demuxers/id3.c b/src/demuxers/id3.c index ba8f50676..db5bba8f6 100644 --- a/src/demuxers/id3.c +++ b/src/demuxers/id3.c @@ -373,7 +373,7 @@ static int id3v22_parse_tag(input_plugin_t *input, while ((pos + ID3V22_FRAME_HEADER_SIZE) <= tag_header.size) { if (id3v22_parse_frame_header(input, &tag_frame_header)) { pos += ID3V22_FRAME_HEADER_SIZE; - if (tag_frame_header.id && tag_frame_header.size) { + if (tag_frame_header.id) { if ((pos + tag_frame_header.size) <= tag_header.size) { if (!id3v22_interp_frame(input, stream, &tag_frame_header)) { xprintf(stream->xine, XINE_VERBOSITY_DEBUG, @@ -570,7 +570,7 @@ static int id3v23_parse_tag(input_plugin_t *input, while ((pos + ID3V23_FRAME_HEADER_SIZE) <= tag_header.size) { if (id3v23_parse_frame_header(input, &tag_frame_header)) { pos += ID3V23_FRAME_HEADER_SIZE; - if (tag_frame_header.id && tag_frame_header.size) { + if (tag_frame_header.id) { if ((pos + tag_frame_header.size) <= tag_header.size) { if (!id3v23_interp_frame(input, stream, &tag_frame_header)) { xprintf(stream->xine, XINE_VERBOSITY_DEBUG, @@ -826,7 +826,7 @@ static int id3v24_parse_tag(input_plugin_t *input, while ((pos + ID3V24_FRAME_HEADER_SIZE) <= tag_header.size) { if (id3v24_parse_frame_header(input, &tag_frame_header)) { pos += ID3V24_FRAME_HEADER_SIZE; - if (tag_frame_header.id && tag_frame_header.size) { + if (tag_frame_header.id) { if ((pos + tag_frame_header.size) <= tag_header.size) { if (!id3v24_interp_frame(input, stream, &tag_frame_header)) { xprintf(stream->xine, XINE_VERBOSITY_DEBUG, |