the reference implementation clamps rounds to [1000,
999999999]. we
further limited rounds to at most
9999999 as a defense against extreme
run times, but wrongly clamped instead of treating out-of-bounds
values as an error, thereby producing implementation-specific hash
results. fixing this should not break anything since values of rounds
this high are not useful anyway.
if (u < ROUNDS_MIN)
r = ROUNDS_MIN;
else if (u > ROUNDS_MAX)
- r = ROUNDS_MAX;
+ return 0;
else
r = u;
/* needed when rounds is zero prefixed or out of bounds */
if (u < ROUNDS_MIN)
r = ROUNDS_MIN;
else if (u > ROUNDS_MAX)
- r = ROUNDS_MAX;
+ return 0;
else
r = u;
/* needed when rounds is zero prefixed or out of bounds */