Fix parsing vuengine elf files
This commit is contained in:
parent
4f681d883e
commit
cd8ebab4bf
|
@ -86,12 +86,13 @@ fn parse_elf_program<Elf: object::read::elf::FileHeader<Endian = object::Endiann
|
||||||
let mut bytes = vec![];
|
let mut bytes = vec![];
|
||||||
let mut pstart = None;
|
let mut pstart = None;
|
||||||
for phdr in header.program_headers(endian, data).ok()? {
|
for phdr in header.program_headers(endian, data).ok()? {
|
||||||
if phdr.p_filesz(endian).into() == 0 {
|
let pma = phdr.p_paddr(endian).into();
|
||||||
|
if pma < 0x07000000 || phdr.p_filesz(endian).into() == 0 {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
let start = pstart.unwrap_or(phdr.p_paddr(endian).into());
|
let start = pstart.unwrap_or(pma);
|
||||||
pstart = Some(start);
|
pstart = Some(start);
|
||||||
bytes.resize((phdr.p_paddr(endian).into() - start) as usize, 0);
|
bytes.resize((pma - start) as usize, 0);
|
||||||
let data = phdr.data(endian, data).ok()?;
|
let data = phdr.data(endian, data).ok()?;
|
||||||
bytes.extend_from_slice(data);
|
bytes.extend_from_slice(data);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue