BUG/MINOR: tools: fix statistical_prng_range()'s output range
This function was added by commit 84ebfabf7 ("MINOR: tools: add
statistical_prng_range() to get a random number over a range") but it
contains a bug on the range, since mul32hi() covers the whole input
range, we must pass it range-1. For now it didn't have any impact, but
if used to find an array's index it will cause trouble.
This should be backported to 2.4.
diff --git a/include/haproxy/tools.h b/include/haproxy/tools.h
index 90d46a6..3059fa8 100644
--- a/include/haproxy/tools.h
+++ b/include/haproxy/tools.h
@@ -1063,7 +1063,7 @@
*/
static inline uint statistical_prng_range(uint range)
{
- return mul32hi(statistical_prng(), range);
+ return mul32hi(statistical_prng(), range ? range - 1 : 0);
}
/* Update array <fp> with the character transition <prev> to <curr>. If <prev>