diff options
Diffstat (limited to 'jail')
-rw-r--r-- | jail/elf.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -236,18 +236,18 @@ int elf_load_deps(const char *path, const char *map) unsigned long load_offset, load_vaddr; unsigned long interp_offset; - if (elf_find_section(map, PT_LOAD, &load_offset, NULL, &load_vaddr)) { - ERROR("failed to load the .load section from %s\n", path); - return -1; + if (elf_find_section(map, PT_INTERP, &interp_offset, NULL, NULL) == 0) { + add_path_and_deps(map+interp_offset, 1, -1, 0); } - if (elf_find_section(map, PT_DYNAMIC, &dyn_offset, &dyn_size, NULL)) { - ERROR("failed to load the .dynamic section from %s\n", path); - return -1; + if (elf_find_section(map, PT_LOAD, &load_offset, NULL, &load_vaddr)) { + DEBUG("failed to load the .load section from %s\n", path); + return 0; } - if (elf_find_section(map, PT_INTERP, &interp_offset, NULL, NULL) == 0) { - add_path_and_deps(map+interp_offset, 1, -1, 0); + if (elf_find_section(map, PT_DYNAMIC, &dyn_offset, &dyn_size, NULL)) { + DEBUG("failed to load the .dynamic section from %s\n", path); + return 0; } int clazz = map[EI_CLASS]; |