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: 40aeab6fd5 ("modetest: util: pattern: add new patterns")
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
This commit is contained in:
Dave Stevenson 2025-07-15 14:45:57 +01:00
parent b97eb2474a
commit 35a59fe63c

View file

@ -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;