From 6d972beb23385022319cb36892519c70b0d0fc22 Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sat, 26 Sep 2020 19:20:50 +0200 Subject: [PATCH] avformat/aviobuf: check if requested seekback buffer is already read Existing code did not check if the requested seekback buffer is already read entirely. In this case, nothing has to be done to guarantee seekback. Signed-off-by: Marton Balint --- libavformat/aviobuf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index 96754253497..d94be478acc 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -999,6 +999,9 @@ int ffio_ensure_seekback(AVIOContext *s, int64_t buf_size) int filled = s->buf_end - s->buffer; ptrdiff_t checksum_ptr_offset = s->checksum_ptr ? s->checksum_ptr - s->buffer : -1; + if (buf_size <= s->buf_end - s->buf_ptr) + return 0; + buf_size += s->buf_ptr - s->buffer + max_buffer_size; if (buf_size < filled || s->seekable || !s->read_packet) -- 2.39.2