aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2024-06-17 13:31:02 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2024-08-01 00:18:02 +0200
commit58fbeb59e74ac9a4ca81e9bc44141abcbff8ab6d (patch)
treeda6cc091d768f911e3ecd1c20c5fc16d92218e4e
parented96ac87a94aa0943412af93ef51c22cdc4c907c (diff)
downloadffmpeg-58fbeb59e74ac9a4ca81e9bc44141abcbff8ab6d.tar.gz
avcodec/utils: apply the same alignment to YUV410 as we do to YUV420 for snow
The snow encoder uses block based motion estimation which can read out of array if insufficient alignment is used It may be better to only apply this for the encoder, as it would safe a few bytes of memory for the decoder. Until then, this fixes the issue in a simple way. Fixes: out of array access Fixes: 68963/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SNOW_fuzzer-4979988435632128 Fixes: 68969/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SNOW_fuzzer-6239933667803136.fuzz Fixed: 70497/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SNOW_fuzzer-5751882631413760 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavcodec/utils.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 337c00e789..7914f79904 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -259,6 +259,9 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
if (s->codec_id == AV_CODEC_ID_SVQ1) {
w_align = 64;
h_align = 64;
+ } else if (s->codec_id == AV_CODEC_ID_SNOW) {
+ w_align = 16;
+ h_align = 16;
}
break;
case AV_PIX_FMT_RGB555: