From 91805f06a39ca82e1463ebce578452d0e2f22bf6 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Thu, 27 Oct 2011 01:38:21 +0200 Subject: [PATCH] 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 --- libavformat/rawdec.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c index a4e009b7e0..02e335ad1b 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;