Commit a61b32df3f for ffmpeg
commit a61b32df3fd67f76c1c8c7ea51be2a66efb0f945
Author: Michael Niedermayer <michael@niedermayer.cc>
Date: Wed Oct 21 18:26:56 2026 +0200
avcodec/pcm-bluray: copy only whole samples on big-endian hosts
Copy the same number of bytes the little-endian path consumes; the
remaining bytes are left to the next call, which rejects them.
Fixes: 6zek0xDeEzFA
Regression since: bc057f7592
Fixes: heap buffer overflow
Heap buffer overflow write Replicated through UnModified FFmpeg with a guard page allocator (big-endian s390x build under qemu-user)
Found during review of PR #23393
diff --git a/libavcodec/pcm-bluray.c b/libavcodec/pcm-bluray.c
index 194224c67e..fba7c8656d 100644
--- a/libavcodec/pcm-bluray.c
+++ b/libavcodec/pcm-bluray.c
@@ -167,7 +167,7 @@ static int pcm_bluray_decode_frame(AVCodecContext *avctx, AVFrame *frame,
samples *= num_source_channels;
if (AV_SAMPLE_FMT_S16 == avctx->sample_fmt) {
#if HAVE_BIGENDIAN
- bytestream2_get_buffer(&gb, (uint8_t*)dst16, buf_size);
+ bytestream2_get_buffer(&gb, (uint8_t*)dst16, samples * 2);
#else
do {
*dst16++ = bytestream2_get_be16u(&gb);