From 1daff1afddf0dac8736fbef29816a40e974988b2 Mon Sep 17 00:00:00 2001 From: Jonny McGregor Date: Wed, 12 Mar 2025 16:18:37 +0100 Subject: [PATCH] Fixes Issue #780: Replaced version component addition with bitwise OR - Replaced addition (`+`) with bitwise OR (`|`) in `_FRUT_version_to_dec` to correctly pack version components. - Fixes incorrect results caused by addition-related overflow or bit corruption. - Ensures reliable encoding of version numbers for all valid inputs. --- cmake/Reprojucer.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/Reprojucer.cmake b/cmake/Reprojucer.cmake index ea8af8e75..3edc06828 100644 --- a/cmake/Reprojucer.cmake +++ b/cmake/Reprojucer.cmake @@ -6754,10 +6754,10 @@ function(_FRUT_version_to_dec version out_dec_value) list(GET segments 0 major) list(GET segments 1 minor) list(GET segments 2 patch) - math(EXPR dec_value "(${major} << 16) + (${minor} << 8) + ${patch}") + math(EXPR dec_value "(${major} << 16) | (${minor} << 8) | ${patch}") if(segments_size GREATER 3) list(GET segments 3 revision) - math(EXPR dec_value "${dec_value} << 8 + ${revision}") + math(EXPR dec_value "${dec_value} << 8 | ${revision}") endif() set(${out_dec_value} "${dec_value}" PARENT_SCOPE)