diff --git a/libavformat/rdt.c b/libavformat/rdt.c index 60449d256a..2fa53d34a8 100644 --- a/libavformat/rdt.c +++ b/libavformat/rdt.c @@ -206,6 +206,8 @@ ff_rdt_parse_header(const uint8_t *buf, int len, return -1; /* not followed by a data packet */ pkt_len = AV_RB16(buf+3); + if (pkt_len > len) + return AVERROR_INVALIDDATA; buf += pkt_len; len -= pkt_len; consumed += pkt_len;