From 19c5cd92b2584b1f21848cb3d409078ce08a5fdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= Date: Sat, 29 Apr 2023 18:26:41 +0200 Subject: vo_gpu_next: add size guard for pass->num_samples This shouldn't happen as the array sizes are the same, but guard against it in case libplacebo do something naughty. --- video/out/vo_gpu_next.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'video/out') diff --git a/video/out/vo_gpu_next.c b/video/out/vo_gpu_next.c index ae2a370050..9158479a7c 100644 --- a/video/out/vo_gpu_next.c +++ b/video/out/vo_gpu_next.c @@ -759,11 +759,12 @@ static void info_callback(void *priv, const struct pl_render_info *info) struct mp_pass_perf *perf = &frame->perf[index]; const struct pl_dispatch_info *pass = info->pass; static_assert(VO_PERF_SAMPLE_COUNT >= MP_ARRAY_SIZE(pass->samples), ""); + assert(pass->num_samples <= MP_ARRAY_SIZE(pass->samples)); pthread_mutex_lock(&p->perf_lock); - memcpy(perf->samples, pass->samples, pass->num_samples * sizeof(pass->samples[0])); - perf->count = pass->num_samples; + perf->count = MPMIN(pass->num_samples, VO_PERF_SAMPLE_COUNT); + memcpy(perf->samples, pass->samples, perf->count * sizeof(pass->samples[0])); perf->last = pass->last; perf->peak = pass->peak; perf->avg = pass->average; -- cgit v1.2.3