summaryrefslogtreecommitdiff
path: root/libavformat/ffmdec.c
diff options
context:
space:
mode:
authorAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2016-10-23 16:05:01 +0200
committerAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2016-11-07 00:51:49 +0100
commit0009457dc09739685ee192c90d6691e1663c8b9c (patch)
tree3e9c15fa726ccb14e6739f34e689960f2758957b /libavformat/ffmdec.c
parent872fcfcc0f01230ef761e286b0c6a18817e0a162 (diff)
ffmdec: validate sample_rate
A negative sample rate doesn't make sense and triggers assertions in av_rescale_rnd. Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Diffstat (limited to 'libavformat/ffmdec.c')
-rw-r--r--libavformat/ffmdec.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/libavformat/ffmdec.c b/libavformat/ffmdec.c
index 16ba8ecf58..6b09be2456 100644
--- a/libavformat/ffmdec.c
+++ b/libavformat/ffmdec.c
@@ -432,6 +432,11 @@ static int ffm2_read_header(AVFormatContext *s)
goto fail;
}
codec->sample_rate = avio_rb32(pb);
+ if (codec->sample_rate <= 0) {
+ av_log(s, AV_LOG_ERROR, "Invalid sample rate %d\n", codec->sample_rate);
+ ret = AVERROR_INVALIDDATA;
+ goto fail;
+ }
codec->channels = avio_rl16(pb);
codec->frame_size = avio_rl16(pb);
break;
@@ -628,6 +633,10 @@ static int ffm_read_header(AVFormatContext *s)
break;
case AVMEDIA_TYPE_AUDIO:
codec->sample_rate = avio_rb32(pb);
+ if (codec->sample_rate <= 0) {
+ av_log(s, AV_LOG_ERROR, "Invalid sample rate %d\n", codec->sample_rate);
+ goto fail;
+ }
codec->channels = avio_rl16(pb);
codec->frame_size = avio_rl16(pb);
break;