Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShitiz Garg <mail@dragooon.net>2011-12-15 13:02:59 +0400
committerMartin Storsjö <martin@martin.st>2011-12-15 13:07:20 +0400
commit566ee0eaf1543101f7a441cc42e3ddad097363bf (patch)
tree777bdc7b476dda9ecbdba42f10f8bb20397208f0 /libavformat
parent1b35af3225392a5328f6534c53e96a56cd5eb305 (diff)
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@martin.st>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/westwood.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavformat/westwood.c b/libavformat/westwood.c
index 67a00c9c33..82b7e94840 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))