From bb0e4506a6fbf2d22fda8e98fe9d34154619d2b4 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Tue, 8 Oct 2024 15:17:09 +0200 Subject: [PATCH] vkd3d-shader/ir: Validate masks in shader signatures. --- libs/vkd3d-shader/ir.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 89ed1504..affbae3e 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -6514,6 +6514,10 @@ static void vsir_validate_signature_element(struct validation_context *ctx, if (element->register_count == 0) validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_SIGNATURE, "element %u of %s signature: Invalid zero register count.", idx, signature_type); + + if (element->mask == 0 || (element->mask & ~0xf)) + validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_SIGNATURE, + "element %u of %s signature: Invalid mask %#x.", idx, signature_type, element->mask); } static void vsir_validate_signature(struct validation_context *ctx,