From: Adhemerval Zanella Date: Fri, 25 Apr 2025 16:04:33 +0000 (-0300) Subject: string: Fix UB on test-strrchr X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ae7611c80f43bfa515357e65c6818bb2e004088;p=thirdparty%2Fglibc.git 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. --- 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)