random(6): Fix off-by-one
After r355693, random(6) -f sometimes fail to output all the lines of the input file. This is because the range from which random indices are chosen is too big, so occasionally the random selection doesn't correspond to any line and nothing gets printed. (Ed. note: Mea culpa. Working on r355693, I was confused by the sometime use of 1-indexing, sometimes 0-indexing in randomize_fd().) Submitted by: Ryan Moeller <ryan AT freqlabs.com> X-MFC-With: r355693 Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D23199
This commit is contained in:
parent
1137d1a7e5
commit
92f7ba208c
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=356810
@ -211,7 +211,7 @@ randomize_fd(int fd, int type, int unique, double denom)
|
|||||||
free(buf);
|
free(buf);
|
||||||
|
|
||||||
for (i = numnode; i > 0; i--) {
|
for (i = numnode; i > 0; i--) {
|
||||||
selected = arc4random_uniform(numnode + 1);
|
selected = arc4random_uniform(numnode);
|
||||||
|
|
||||||
for (j = 0, prev = n = rand_root; n != NULL; j++, prev = n, n = n->next) {
|
for (j = 0, prev = n = rand_root; n != NULL; j++, prev = n, n = n->next) {
|
||||||
if (j == selected) {
|
if (j == selected) {
|
||||||
|
Loading…
Reference in New Issue
Block a user