@@ -258,31 +258,29 @@ impl ElfInfo {
258258 ) ;
259259 }
260260 for phdr in self . phdrs . iter ( ) . filter ( |phdr| phdr. p_type == PT_LOAD ) {
261- let start_va = usize:: try_from (
262- phdr. p_vaddr . checked_sub ( base_va) . ok_or_else ( || {
263- new_error ! (
264- "PT_LOAD p_vaddr ({:#x}) is below base_va ({:#x})" ,
265- phdr. p_vaddr,
266- base_va
267- )
268- } ) ?,
269- )
261+ let start_va = usize:: try_from ( phdr. p_vaddr . checked_sub ( base_va) . ok_or_else ( || {
262+ new_error ! (
263+ "PT_LOAD p_vaddr ({:#x}) is below base_va ({:#x})" ,
264+ phdr. p_vaddr,
265+ base_va
266+ )
267+ } ) ?)
270268 . map_err ( |_| new_error ! ( "segment offset exceeds addressable range" ) ) ?;
271269 let payload_offset =
272270 usize:: try_from ( phdr. p_offset ) . map_err ( |_| new_error ! ( "p_offset too large" ) ) ?;
273271 let payload_len =
274272 usize:: try_from ( phdr. p_filesz ) . map_err ( |_| new_error ! ( "p_filesz too large" ) ) ?;
275273 let memsz =
276274 usize:: try_from ( phdr. p_memsz ) . map_err ( |_| new_error ! ( "p_memsz too large" ) ) ?;
277- let file_end = start_va. checked_add ( payload_len ) . ok_or_else ( || {
278- new_error ! ( "segment file region overflows" )
279- } ) ?;
280- let payload_src_end = payload_offset. checked_add ( payload_len ) . ok_or_else ( || {
281- new_error ! ( "payload source range overflows" )
282- } ) ?;
283- let seg_end = start_va. checked_add ( memsz ) . ok_or_else ( || {
284- new_error ! ( "segment memory region overflows" )
285- } ) ?;
275+ let file_end = start_va
276+ . checked_add ( payload_len )
277+ . ok_or_else ( || new_error ! ( "segment file region overflows" ) ) ?;
278+ let payload_src_end = payload_offset
279+ . checked_add ( payload_len )
280+ . ok_or_else ( || new_error ! ( "payload source range overflows" ) ) ?;
281+ let seg_end = start_va
282+ . checked_add ( memsz )
283+ . ok_or_else ( || new_error ! ( "segment memory region overflows" ) ) ?;
286284 target
287285 . get_mut ( start_va..file_end)
288286 . ok_or_else ( || new_error ! ( "segment file region out of bounds" ) ) ?
0 commit comments