[PATCH weston] tests: Fix integer overflows on 32-bit systems

Alexandros Frantzis alexandros.frantzis at collabora.com
Fri Dec 1 17:28:52 UTC 2017


Ensure that the integer type used in expressions involving
multiplication with NSEC_PER_SEC is large enough to avoid overflows on
32-bit systems. In the expressions fixed by this patch a 64-bit type
(long long) is required.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis at collabora.com>
---
 tests/timespec-test.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/timespec-test.c b/tests/timespec-test.c
index f127bcee..31a6f146 100644
--- a/tests/timespec-test.c
+++ b/tests/timespec-test.c
@@ -160,7 +160,7 @@ ZUC_TEST(timespec_test, timespec_sub_to_nsec)
 	a.tv_nsec = 1;
 	b.tv_sec = 1;
 	b.tv_nsec = 2;
-	ZUC_ASSERT_EQ((999L * NSEC_PER_SEC) - 1, timespec_sub_to_nsec(&a, &b));
+	ZUC_ASSERT_EQ((999LL * NSEC_PER_SEC) - 1, timespec_sub_to_nsec(&a, &b));
 }
 
 ZUC_TEST(timespec_test, timespec_sub_to_msec)
@@ -190,7 +190,7 @@ ZUC_TEST(timespec_test, timespec_from_nsec)
 	ZUC_ASSERT_EQ(1, a.tv_sec);
 	ZUC_ASSERT_EQ(0, a.tv_nsec);
 
-	timespec_from_nsec(&a, (5L * NSEC_PER_SEC) + 1);
+	timespec_from_nsec(&a, (5LL * NSEC_PER_SEC) + 1);
 	ZUC_ASSERT_EQ(5, a.tv_sec);
 	ZUC_ASSERT_EQ(1, a.tv_nsec);
 }
-- 
2.14.1



More information about the wayland-devel mailing list