From 35a59fe63cb670f429d1626d4a83fb128f2fb9b9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 15 Jul 2025 14:45:57 +0100 Subject: [PATCH] util: pattern: Fix seg fault for simple patterns for 2-plane YUV formats 2-plane YUV formats don't populate planes[2], so insert_value_yuv_planar writing to that as v_mem caused a seg fault. Compute the U & V pointers correctly for NV12, NV21, NV16, NV61, and NV24. Fixes: 40aeab6fd5b8 ("modetest: util: pattern: add new patterns") Signed-off-by: Dave Stevenson --- tests/util/pattern.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/util/pattern.c b/tests/util/pattern.c index 358699a4..f3af76f2 100644 --- a/tests/util/pattern.c +++ b/tests/util/pattern.c @@ -1957,6 +1957,11 @@ static void insert_value_yuv_planar(const struct util_format_info *info, unsigned char *v_mem = planes[2]; switch (info->format) { + case DRM_FORMAT_NV12: + case DRM_FORMAT_NV21: + case DRM_FORMAT_NV16: + case DRM_FORMAT_NV61: + case DRM_FORMAT_NV24: case DRM_FORMAT_NV42: u_mem = info->yuv.order & YUV_YCbCr ? planes[1] : planes[1] + 1; v_mem = info->yuv.order & YUV_YCrCb ? planes[1] : planes[1] + 1;