From 9ae7611c80f43bfa515357e65c6818bb2e004088 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Fri, 25 Apr 2025 13:04:33 -0300 Subject: [PATCH] string: Fix UB on test-strrchr UBSAN: Undefined behaviour in test-strrchr.c:100:35 unsigned integer overflow: 1804289383 * 846930886 cannot be represened in type 'long int' Use int64_t operations instead. --- string/test-strrchr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/string/test-strrchr.c b/string/test-strrchr.c index 1503a1c9e5..09a35137ef 100644 --- a/string/test-strrchr.c +++ b/string/test-strrchr.c @@ -97,9 +97,9 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char) for (i = 0; i < len; ++i) { - buf[align + i] = (random () * random ()) & max_char; + buf[align + i] = ((int64_t)random () * random ()) & max_char; if (!buf[align + i]) - buf[align + i] = (random () * random ()) & max_char; + buf[align + i] = ((int64_t)random () * random ()) & max_char; if (!buf[align + i]) buf[align + i] = 1; if ((i > pos || pos >= len) && buf[align + i] == seek_char) -- 2.47.2