@@ -452,35 +452,35 @@ pub struct PcrEvent<'a> {
452452impl < ' 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