Skip to content

Commit 7fcc5eb

Browse files
authored
Fix manual slice size calcuation (#1308)
1 parent c6cca9c commit 7fcc5eb

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

src/rng.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ macro_rules! impl_fill {
350350
rng.try_fill_bytes(unsafe {
351351
slice::from_raw_parts_mut(self.as_mut_ptr()
352352
as *mut u8,
353-
self.len() * mem::size_of::<$t>()
353+
mem::size_of_val(self)
354354
)
355355
})?;
356356
for x in self {

src/rngs/adapter/reseeding.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//! A wrapper around another PRNG that reseeds it after it
1111
//! generates a certain number of random bytes.
1212
13-
use core::mem::size_of;
13+
use core::mem::size_of_val;
1414

1515
use rand_core::block::{BlockRng, BlockRngCore, CryptoBlockRng};
1616
use rand_core::{CryptoRng, Error, RngCore, SeedableRng};
@@ -177,7 +177,7 @@ where
177177
// returning from a non-inlined function.
178178
return self.reseed_and_generate(results, global_fork_counter);
179179
}
180-
let num_bytes = results.as_ref().len() * size_of::<Self::Item>();
180+
let num_bytes = size_of_val(results.as_ref());
181181
self.bytes_until_reseed -= num_bytes as i64;
182182
self.inner.generate(results);
183183
}
@@ -247,7 +247,7 @@ where
247247
trace!("Reseeding RNG (periodic reseed)");
248248
}
249249

250-
let num_bytes = results.as_ref().len() * size_of::<<R as BlockRngCore>::Item>();
250+
let num_bytes = size_of_val(results.as_ref());
251251

252252
if let Err(e) = self.reseed() {
253253
warn!("Reseeding RNG failed: {}", e);

0 commit comments

Comments
 (0)