GP-3586 corrected inappropriate ELF Header warniing for non-ELF binary

import
This commit is contained in:
ghidra1
2023-06-27 11:11:38 -04:00
parent 69289358f2
commit f9f32991be
@@ -15,11 +15,10 @@
*/
package ghidra.app.util.bin.format.elf;
import java.io.IOException;
import java.util.*;
import java.util.function.Consumer;
import java.io.IOException;
import ghidra.app.util.bin.*;
import ghidra.app.util.bin.format.elf.ElfRelocationTable.TableFormat;
import ghidra.app.util.bin.format.elf.extend.ElfExtensionFactory;
@@ -136,21 +135,19 @@ public class ElfHeader implements StructConverter {
protected void initElfHeader() throws ElfException {
try {
if (!Arrays.equals(ElfConstants.MAGIC_BYTES,
provider.readBytes(0, ElfConstants.MAGIC_BYTES.length))) {
throw new ElfException("Not a valid ELF executable.");
}
e_ident_magic_num = ElfConstants.MAGIC_NUM;
e_ident_magic_str = ElfConstants.MAGIC_STR;
determineHeaderEndianess();
// reader uses unbounded provider wrapper to allow handling of missing/truncated headers
reader = new BinaryReader(new UnlimitedByteProviderWrapper(provider),
hasLittleEndianHeaders);
e_ident_magic_num = reader.readNextByte();
e_ident_magic_str = reader.readNextAsciiString(ElfConstants.MAGIC_STR_LEN);
boolean magicMatch = ElfConstants.MAGIC_NUM == e_ident_magic_num &&
ElfConstants.MAGIC_STR.equalsIgnoreCase(e_ident_magic_str);
if (!magicMatch) {
throw new ElfException("Not a valid ELF executable.");
}
reader.setPointerIndex(ElfConstants.MAGIC_BYTES.length);
e_ident_class = reader.readNextByte();
e_ident_data = reader.readNextByte();