Skip to content

Commit 879d8f7

Browse files
committed
Properly check defined bits range
1 parent cfd5fb5 commit 879d8f7

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/librustc_mir/interpret/memory.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ impl<'a, 'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'a, 'mir, 'tcx, M> {
233233
(ptr.offset.bytes(), alloc.align)
234234
}
235235
Scalar::Bits { bits, defined } => {
236-
if defined <= self.pointer_size().bits() as u8 {
236+
if (defined as u64) < self.pointer_size().bits() {
237237
return err!(ReadUndefBytes);
238238
}
239239
// FIXME: what on earth does this line do? docs or fix needed!
@@ -750,7 +750,7 @@ impl<'a, 'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'a, 'mir, 'tcx, M> {
750750
val.offset.bytes() as u128
751751
}
752752

753-
Scalar::Bits { bits, defined } if defined >= size.bits() as u8 && defined != 0 => bits,
753+
Scalar::Bits { bits, defined } if defined as u64 >= size.bits() && size.bits() != 0 => bits,
754754

755755
Scalar::Bits { .. } => {
756756
self.check_align(ptr.into(), ptr_align)?;

0 commit comments

Comments
 (0)