lede/package/system/procd/patches/001-procd_ujail_static_binary_fix.patch

30 lines
1.0 KiB
Diff

--- a/jail/elf.c
+++ b/jail/elf.c
@@ -240,18 +240,18 @@ int elf_load_deps(const char *path, cons
gcc_mips64_bug_work_around = 1;
#endif
- 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];