Skip to content

Commit 3f74bdc

Browse files
committed
gen_random: use check_ptr_access
1 parent 83d70ba commit 3f74bdc

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/helpers.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::mem;
22

3-
use rustc::ty::{self, layout::{self, Size}};
3+
use rustc::ty::{self, layout::{self, Size, Align}};
44
use rustc::hir::def_id::{DefId, CRATE_DEF_INDEX};
55

66
use rand::RngCore;
@@ -71,14 +71,14 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
7171
fn gen_random(
7272
&mut self,
7373
len: usize,
74-
dest: Scalar<Tag>,
74+
ptr: Scalar<Tag>,
7575
) -> InterpResult<'tcx> {
76-
if len == 0 {
77-
// Nothing to do
78-
return Ok(());
79-
}
8076
let this = self.eval_context_mut();
81-
let ptr = dest.to_ptr()?;
77+
78+
let ptr = match this.memory().check_ptr_access(ptr, Size::from_bytes(len as u64), Align::from_bytes(1).unwrap())? {
79+
Some(ptr) => ptr,
80+
None => return Ok(()), // zero-sized access
81+
};
8282

8383
let data = match &mut this.memory_mut().extra.rng {
8484
Some(rng) => {

0 commit comments

Comments
 (0)