rawdec: add check on sample_rate
authorStefano Sabatini <stefasab@gmail.com>
Wed, 26 Oct 2011 23:38:21 +0000 (01:38 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 18 Nov 2011 20:33:11 +0000 (21:33 +0100)
Prevent error condition in case sample_rate is unset or set to a negative
value. In particular, fix divide-by-zero error occurring in ffmpeg due to
sample_rate set to 0 in output_packet(), in code:

                ist->next_pts += ((int64_t)AV_TIME_BASE * ist->st->codec->frame_size) /
                    ist->st->codec->sample_rate;

Fix trac ticket #324.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/rawdec.c

index a4e009b..02e335a 100644 (file)
@@ -59,6 +59,12 @@ int ff_raw_read_header(AVFormatContext *s, AVFormatParameters *ap)
 
             if (s1->sample_rate)
                 st->codec->sample_rate = s1->sample_rate;
+            if (st->codec->sample_rate <= 0) {
+                av_log(s, AV_LOG_ERROR, "Invalid sample rate %d specified\n",
+                       st->codec->sample_rate);
+                return AVERROR(EINVAL);
+            }
+
             if (s1->channels)
                 st->codec->channels    = s1->channels;