X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fdcstr.c;h=9ddccc7f2d48c021564251f74a9b8ca12fb86cef;hb=2086d635c36c2865d1a0145c56e448b30af59ba0;hp=6035dd43344cec78e209877ea41daa873b5dbd2f;hpb=0a319bcce5714f7183b0537892f7d37d7a31493a;p=ffmpeg diff --git a/libavformat/dcstr.c b/libavformat/dcstr.c index 6035dd43344..9ddccc7f2d4 100644 --- a/libavformat/dcstr.c +++ b/libavformat/dcstr.c @@ -22,7 +22,7 @@ #include "avformat.h" #include "internal.h" -static int dcstr_probe(AVProbeData *p) +static int dcstr_probe(const AVProbeData *p) { if (p->buf_size < 224 || memcmp(p->buf + 213, "Sega Stream", 11)) return 0; @@ -43,6 +43,8 @@ static int dcstr_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->channels = avio_rl32(s->pb); st->codecpar->sample_rate = avio_rl32(s->pb); + if (st->codecpar->sample_rate <= 0) + return AVERROR_INVALIDDATA; codec = avio_rl32(s->pb); align = avio_rl32(s->pb); avio_skip(s->pb, 4);