X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fdcstr.c;h=71dce08bf736aaa513fc56338fb4fbd87be4577f;hb=0814610ee35614e417d6942784f7b299f2414a9b;hp=6035dd43344cec78e209877ea41daa873b5dbd2f;hpb=c2631dfd0a0a12050cc1765fd41702c5e93abee5;p=ffmpeg diff --git a/libavformat/dcstr.c b/libavformat/dcstr.c index 6035dd43344..71dce08bf73 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); @@ -76,7 +78,7 @@ static int dcstr_read_packet(AVFormatContext *s, AVPacket *pkt) return av_get_packet(s->pb, pkt, par->block_align); } -AVInputFormat ff_dcstr_demuxer = { +const AVInputFormat ff_dcstr_demuxer = { .name = "dcstr", .long_name = NULL_IF_CONFIG_SMALL("Sega DC STR"), .read_probe = dcstr_probe,