[FFmpeg-cvslog] rawdec: add check on sample_rate
Stefano Sabatini
git at videolan.org
Mon Nov 21 19:59:18 CET 2011
ffmpeg | branch: release/0.7 | Stefano Sabatini <stefasab at gmail.com> | Thu Oct 27 01:38:21 2011 +0200| [91805f06a39ca82e1463ebce578452d0e2f22bf6] | committer: Michael Niedermayer
rawdec: add check on sample_rate
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 at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=91805f06a39ca82e1463ebce578452d0e2f22bf6
---
libavformat/rawdec.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c
index a4e009b..02e335a 100644
--- a/libavformat/rawdec.c
+++ b/libavformat/rawdec.c
@@ -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;
More information about the ffmpeg-cvslog
mailing list