fix parsing of ELF where the program header does not directly follow the file header
diff --git a/main.cpp b/main.cpp
index 89059c5..aa7790d 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1210,6 +1210,9 @@
     }
     if (eh.ph_num) {
         vector<elf32_ph_entry> entries(eh.ph_num);
+        if (fseek(file, eh.ph_offset, SEEK_SET)) {
+            return fail_read_error();
+        }
         if (eh.ph_num != fread(&entries[0], sizeof(struct elf32_ph_entry), eh.ph_num, file)) {
             fail_read_error();
         }