From 06b3a20761fa3bb3f423f8fc2e7ebe1872f6b782 Mon Sep 17 00:00:00 2001 From: James Almer Date: Thu, 20 Nov 2025 23:49:07 -0300 Subject: [PATCH] swscale/ops_tmpl_int: fix signed integer related UB when shifting values Fixes: src/libswscale/ops_tmpl_int.c:292:23: runtime error: left shift of 188 by 24 places cannot be represented in type 'int' src/libswscale/ops_tmpl_int.c:290:23: runtime error: left shift of 158 by 24 places cannot be represented in type 'int' src/libswscale/ops_tmpl_int.c:293:23: runtime error: left shift of 136 by 24 places cannot be represented in type 'int' src/libswscale/ops_tmpl_int.c:291:23: runtime error: left shift of 160 by 24 places cannot be represented in type 'int' Signed-off-by: James Almer --- libswscale/ops_tmpl_int.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libswscale/ops_tmpl_int.c b/libswscale/ops_tmpl_int.c index 857031ada9..da24c1985f 100644 --- a/libswscale/ops_tmpl_int.c +++ b/libswscale/ops_tmpl_int.c @@ -287,10 +287,10 @@ DECL_PATTERN(expand32) SWS_LOOP for (int i = 0; i < SWS_BLOCK_SIZE; i++) { - x32[i] = x[i] << 24 | x[i] << 16 | x[i] << 8 | x[i]; - y32[i] = y[i] << 24 | y[i] << 16 | y[i] << 8 | y[i]; - z32[i] = z[i] << 24 | z[i] << 16 | z[i] << 8 | z[i]; - w32[i] = w[i] << 24 | w[i] << 16 | w[i] << 8 | w[i]; + x32[i] = (uint32_t)x[i] << 24 | x[i] << 16 | x[i] << 8 | x[i]; + y32[i] = (uint32_t)y[i] << 24 | y[i] << 16 | y[i] << 8 | y[i]; + z32[i] = (uint32_t)z[i] << 24 | z[i] << 16 | z[i] << 8 | z[i]; + w32[i] = (uint32_t)w[i] << 24 | w[i] << 16 | w[i] << 8 | w[i]; } CONTINUE(u32block_t, x32, y32, z32, w32);