Closed
Description
The example code for std::rand::Rng::fill_bytes
fails due to a stack overflow:
use std::rand::{task_rng, Rng};
fn main() {
let mut v = [0u8, .. 13579];
task_rng().fill_bytes(v);
println!("{:?}", v);
}
This is due to infinite recursion in the ReseedingRng
trait (src/libstd/rand/reseeding.rs:72):
fn fill_bytes(&mut self, dest: &mut [u8]) {
self.reseed_if_necessary();
self.bytes_generated += dest.len();
self.fill_bytes(dest)
}
}
self.fill_bytes(dest)
should be self.rng.fill_bytes(dest)
-- changing the line to that fixes the issue.
Metadata
Metadata
Assignees
Labels
No labels