Skip to content

Commit 8ac4863

Browse files
uefi: Fix unsafe_op_in_unsafe_fn in tcg module
1 parent 8b3338e commit 8ac4863

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

uefi/src/proto/tcg/v1.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ impl PcrEvent {
9595
pub(super) const unsafe fn from_ptr<'a>(ptr: *const u8) -> &'a Self {
9696
// Get the `event_size` field.
9797
let ptr_u32: *const u32 = ptr.cast();
98-
let event_size = ptr_u32.add(7).read_unaligned();
98+
let event_size = unsafe { ptr_u32.add(7).read_unaligned() };
9999
let event_size = usize_from_u32(event_size);
100100
unsafe { &*ptr_meta::from_raw_parts(ptr.cast(), event_size) }
101101
}

uefi/src/proto/tcg/v2.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -452,35 +452,35 @@ pub struct PcrEvent<'a> {
452452
impl<'a> PcrEvent<'a> {
453453
unsafe fn from_ptr(ptr: *const u8, header: EventLogHeader<'a>) -> Option<Self> {
454454
let ptr_u32: *const u32 = ptr.cast();
455-
let pcr_index = PcrIndex(ptr_u32.read_unaligned());
456-
let event_type = EventType(ptr_u32.add(1).read_unaligned());
457-
let digests_count = ptr_u32.add(2).read_unaligned();
458-
let digests_ptr: *const u8 = ptr.add(12);
455+
let pcr_index = PcrIndex(unsafe { ptr_u32.read_unaligned() });
456+
let event_type = EventType(unsafe { ptr_u32.add(1).read_unaligned() });
457+
let digests_count = unsafe { ptr_u32.add(2).read_unaligned() };
458+
let digests_ptr: *const u8 = unsafe { ptr.add(12) };
459459

460460
// Get the byte size of the digests so that the digests iterator
461461
// can be safe code.
462462
let mut digests_byte_size = 0;
463463
let mut elem_ptr = digests_ptr;
464464
for _ in 0..digests_count {
465-
let algorithm_id = AlgorithmId(elem_ptr.cast::<u16>().read_unaligned());
465+
let algorithm_id = AlgorithmId(unsafe { elem_ptr.cast::<u16>().read_unaligned() });
466466
let alg_and_digest_size = size_of::<AlgorithmId>()
467467
+ usize::from(header.algorithm_digest_sizes.get_size(algorithm_id)?);
468468
digests_byte_size += alg_and_digest_size;
469-
elem_ptr = elem_ptr.add(alg_and_digest_size);
469+
elem_ptr = unsafe { elem_ptr.add(alg_and_digest_size) };
470470
}
471471

472-
let digests = slice::from_raw_parts(digests_ptr, digests_byte_size);
473-
let event_size_ptr = digests_ptr.add(digests_byte_size);
474-
let event_size = usize_from_u32(event_size_ptr.cast::<u32>().read_unaligned());
475-
let event_data_ptr = event_size_ptr.add(4);
476-
let event_data = slice::from_raw_parts(event_data_ptr, event_size);
472+
let digests = unsafe { slice::from_raw_parts(digests_ptr, digests_byte_size) };
473+
let event_size_ptr = unsafe { digests_ptr.add(digests_byte_size) };
474+
let event_size = usize_from_u32(unsafe { event_size_ptr.cast::<u32>().read_unaligned() });
475+
let event_data_ptr = unsafe { event_size_ptr.add(4) };
476+
let event_data = unsafe { slice::from_raw_parts(event_data_ptr, event_size) };
477477

478478
Some(Self {
479479
pcr_index,
480480
event_type,
481481
digests,
482482
event_data,
483-
next: event_data_ptr.add(event_size),
483+
next: unsafe { event_data_ptr.add(event_size) },
484484
algorithm_digest_sizes: header.algorithm_digest_sizes,
485485
})
486486
}

0 commit comments

Comments
 (0)