gcc/libstdc++-v3/testsuite/26_numerics/random
Jonathan Wakely 11ce485bcf
libstdc++: Fix unsafe comma operators in <random> [PR122062]
This fixes a 'for' loop in std::piecewise_linear_distribution that
increments two iterators with a comma operator between them, making it
vulnerable to evil overloads of the comma operator.

It also changes a 'for' loop used by some other distributions, even
though those are only used with std::vector<double>::iterator and so
won't find any overloaded commas.

libstdc++-v3/ChangeLog:

	PR libstdc++/122062
	* include/bits/random.tcc (__detail::__normalize): Use void cast
	for operands of comma operator.
	(piecewise_linear_distribution): Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/122062.cc:
	New test.

Reviewed-by: Tomasz Kamiński <tkaminsk@redhat.com>
Reviewed-by: Hewill Kang <hewillk@gmail.com>
2025-09-26 11:01:08 +01:00
..
bernoulli_distribution
binomial_distribution
cauchy_distribution
chi_squared_distribution
discard_block_engine
discrete_distribution
exponential_distribution
extreme_value_distribution
fisher_f_distribution
gamma_distribution
geometric_distribution
independent_bits_engine
linear_congruential_engine
lognormal_distribution
mersenne_twister_engine
negative_binomial_distribution
normal_distribution
philox_engine
piecewise_constant_distribution
piecewise_linear_distribution libstdc++: Fix unsafe comma operators in <random> [PR122062] 2025-09-26 11:01:08 +01:00
poisson_distribution
random_device
seed_seq
shuffle_order_engine
student_t_distribution
subtract_with_carry_engine
uniform_int_distribution
uniform_real_distribution
weibull_distribution
concept.cc
default_random_engine.cc
knuth_b.cc
minstd_rand.cc
minstd_rand0.cc
mt19937.cc
mt19937_64.cc
philox4x32.cc
philox4x64.cc
pr60037-neg.cc
ranlux24.cc
ranlux24_base.cc
ranlux48.cc
ranlux48_base.cc