On Sun, 4 Oct 2020, Andriy Gelman wrote:

From: Andriy Gelman <andriy.gel...@gmail.com>

get_packet_size() may read upto PROBE_PACKET_MAX_BUF bytes, which may be
larger than probesize.

Signed-off-by: Andriy Gelman <andriy.gel...@gmail.com>
---

An alternative could be to make sure we don't read more than s->probesize bytes
in get_packet_size(), but because this function is also called during resync
(midstream) limiting the read bytes may not be the best option.

libavformat/mpegts.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 50d4d5e9bc..019b627d51 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -3054,7 +3054,7 @@ static int mpegts_read_header(AVFormatContext *s)

    s->internal->prefer_codec_framerate = 1;

-    if (ffio_ensure_seekback(pb, probesize) < 0)
+    if (ffio_ensure_seekback(pb, FFMAX(probesize, PROBE_PACKET_MAX_BUF)) < 0)
        av_log(s, AV_LOG_WARNING, "Failed to allocate buffers for seekback\n");

I posted a similar patch not long ago which is I think better because it also takes into account ts->resync_size.

https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200929211021.25030-4-...@passwd.hu/

Regards,
Marton
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to