[FFmpeg-cvslog] westwood: Make sure audio header info is present when parsing audio packets
Shitiz Garg
git at videolan.org
Fri Dec 16 01:32:11 CET 2011
ffmpeg | branch: master | Shitiz Garg <mail at dragooon.net> | Thu Dec 15 14:50:59 2011 +0530| [566ee0eaf1543101f7a441cc42e3ddad097363bf] | committer: Martin Storsjö
westwood: Make sure audio header info is present when parsing audio packets
Audio header information might get scrambled and would not parse,
yet wsqva_read_packet would try to parse audio packets causing
segfaults such as floating point exception.
Fixes bugzilla #141.
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=566ee0eaf1543101f7a441cc42e3ddad097363bf
---
libavformat/westwood.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/libavformat/westwood.c b/libavformat/westwood.c
index 67a00c9..82b7e94 100644
--- a/libavformat/westwood.c
+++ b/libavformat/westwood.c
@@ -326,6 +326,11 @@ static int wsvqa_read_packet(AVFormatContext *s,
chunk_size = AV_RB32(&preamble[4]);
skip_byte = chunk_size & 0x01;
+ if ((chunk_type == SND2_TAG || chunk_type == SND1_TAG) && wsvqa->audio_channels == 0) {
+ av_log(s, AV_LOG_ERROR, "audio chunk without any audio header information found\n");
+ return AVERROR_INVALIDDATA;
+ }
+
if ((chunk_type == SND1_TAG) || (chunk_type == SND2_TAG) || (chunk_type == VQFR_TAG)) {
if (av_new_packet(pkt, chunk_size))
More information about the ffmpeg-cvslog
mailing list