From d2d997c401fdb4e2e8577f418a0b98324c341185 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Tue, 20 Feb 2024 09:44:17 +0100 Subject: [PATCH] Fix signed integer overflow in test_util_math --- test/unit/test_util_math.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/unit/test_util_math.cpp b/test/unit/test_util_math.cpp index fe20239f65..588be1369a 100644 --- a/test/unit/test_util_math.cpp +++ b/test/unit/test_util_math.cpp @@ -139,6 +139,7 @@ TYPED_TEST(MathUtilTest, ptrdiff_t_Arithmetic_Sum) { constexpr auto arithmetic_size = sizeof(SizeType); TypeParam a, b; + ArithmeticT c = std::numeric_limits::max() / 2; if (type_size < arithmetic_size) { a = std::numeric_limits::max(); @@ -155,8 +156,8 @@ TYPED_TEST(MathUtilTest, ptrdiff_t_Arithmetic_Sum) { } { - auto expected_result = static_cast(a) + std::numeric_limits::max(); - EXPECT_EQ(expected_result, util::ptrdiff_t::sum(a, std::numeric_limits::max())); + auto expected_result = static_cast(a) + c; + EXPECT_EQ(expected_result, util::ptrdiff_t::sum(a, c)); } } @@ -168,7 +169,7 @@ TYPED_TEST(MathUtilTest, ptrdiff_t_Arithmetic_Mul) { TypeParam a, b; - if (type_size < arithmetic_size) { + if (type_size * 2 < arithmetic_size) { a = std::numeric_limits::max(); b = std::numeric_limits::max(); }