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