Use 32-bit program headers too

This commit is contained in:
Jeremy Soller
2022-08-20 20:10:15 -06:00
parent 791460d5d1
commit 619245024a
+2 -2
View File
@@ -14,7 +14,7 @@ use alloc::{
//TODO: allow use of either 32-bit or 64-bit programs
#[cfg(target_pointer_width = "32")]
use goblin::elf32::{header::Header, program_header::program_header64::{ProgramHeader, PT_LOAD, PT_INTERP, PF_W, PF_X}};
use goblin::elf32::{header::Header, program_header::program_header32::{ProgramHeader, PT_LOAD, PT_INTERP, PF_W, PF_X}};
#[cfg(target_pointer_width = "64")]
use goblin::elf64::{header::Header, program_header::program_header64::{ProgramHeader, PT_LOAD, PT_INTERP, PF_W, PF_X}};
@@ -115,7 +115,7 @@ where
// PT_INTERP must come before any PT_LOAD, so we don't have to iterate twice.
PT_INTERP => {
let mut interp = vec! [0_u8; segment.p_filesz as usize];
read_all(*image_file as usize, Some(segment.p_offset), &mut interp)?;
read_all(*image_file as usize, Some(segment.p_offset as u64), &mut interp)?;
return Ok(FexecResult::Interp {
path: interp.into_boxed_slice(),