From 987c955cd7e972d9940284fa6ae7187ac858ebb1 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Fri, 11 Jul 2025 22:58:26 +0200 Subject: [PATCH] avformat/aviobuf: Keep checksum_ptr consistent in avio_seek() Otherwise it might be > buf_ptr in which case ffio_get_checksum() could segfault (s->buf_ptr - s->checksum_ptr would be negative which would be converted to something very big when converted to unsigned for the update_checksum callback). Fixes ticket #11233. Reported-by: Du4t Signed-off-by: Andreas Rheinhardt --- libavformat/aviobuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index 6a6ec36e28..9beac8bcd5 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -311,7 +311,7 @@ int64_t avio_seek(AVIOContext *s, int64_t offset, int whence) ctx->seek_count++; if (!s->write_flag) s->buf_end = s->buffer; - s->buf_ptr = s->buf_ptr_max = s->buffer; + s->checksum_ptr = s->buf_ptr = s->buf_ptr_max = s->buffer; s->pos = offset; } s->eof_reached = 0;