From 26115ca03dd65e7e1b83e274293590f163320f86 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 (cherry picked from commit 987c955cd7e972d9940284fa6ae7187ac858ebb1) Signed-off-by: Michael Niedermayer --- libavformat/aviobuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index 6a74c1ce68..9041280e77 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -308,7 +308,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;