aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Plowman <post@frankplowman.com>2024-06-03 14:06:35 +0100
committerNuo Mi <nuomi2021@gmail.com>2024-06-04 20:13:47 +0800
commitd866f49791c11f730ce3d277b16524220ca74f6d (patch)
tree526d9eca1625baf535c7a5a11b6c7ef33e71f794
parent9576a005271e5a20572b5c581dbf15ad77b373bb (diff)
downloadffmpeg-d866f49791c11f730ce3d277b16524220ca74f6d.tar.gz
lavc/vvc: Reallocate pixel buffers if pixel shift changes
Allocations in the following lines depend on the pixel shift, and so these buffers must be reallocated if the pixel shift changes. Patch fixes segmentation faults in fuzzed bitstreams. Signed-off-by: Frank Plowman <post@frankplowman.com>
-rw-r--r--libavcodec/vvc/dec.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavcodec/vvc/dec.c b/libavcodec/vvc/dec.c
index e53ad4e607..f5603306f3 100644
--- a/libavcodec/vvc/dec.c
+++ b/libavcodec/vvc/dec.c
@@ -214,7 +214,8 @@ static void pixel_buffer_nz_tl_init(TabList *l, VVCFrameContext *fc)
const int c_end = chroma_idc ? VVC_MAX_SAMPLE_ARRAYS : 1;
const int changed = fc->tab.sz.chroma_format_idc != chroma_idc ||
fc->tab.sz.width != width || fc->tab.sz.height != height ||
- fc->tab.sz.ctu_width != ctu_width || fc->tab.sz.ctu_height != ctu_height;
+ fc->tab.sz.ctu_width != ctu_width || fc->tab.sz.ctu_height != ctu_height ||
+ fc->tab.sz.pixel_shift != ps;
tl_init(l, 0, changed);