diff --git a/libavformat/avidec.c b/libavformat/avidec.c index ac6e85f78c..11d086cbe8 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -749,8 +749,10 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) return 0; } -static int read_gab2_sub(AVStream *st, AVPacket *pkt) { - if (!strcmp(pkt->data, "GAB2") && AV_RL16(pkt->data+5) == 2) { +static int read_gab2_sub(AVStream *st, AVPacket *pkt) +{ + if (pkt->size >= 7 && + !strcmp(pkt->data, "GAB2") && AV_RL16(pkt->data + 5) == 2) { uint8_t desc[256]; int score = AVPROBE_SCORE_MAX / 2, ret; AVIStream *ast = st->priv_data;