dns: treat names rejected by res_mkquery as nonexistent rather than error
[musl] / ldso / dynlink.c
index e92f03c..03f5fd5 100644 (file)
@@ -886,7 +886,7 @@ static int fixup_rpath(struct dso *p, char *buf, size_t buf_size)
                case ENOENT:
                case ENOTDIR:
                case EACCES:
-                       break;
+                       return 0;
                default:
                        return -1;
                }
@@ -1375,7 +1375,8 @@ static void reloc_all(struct dso *p)
                        2+(dyn[DT_PLTREL]==DT_RELA));
                do_relocs(p, laddr(p, dyn[DT_REL]), dyn[DT_RELSZ], 2);
                do_relocs(p, laddr(p, dyn[DT_RELA]), dyn[DT_RELASZ], 3);
-               do_relr_relocs(p, laddr(p, dyn[DT_RELR]), dyn[DT_RELRSZ]);
+               if (!DL_FDPIC)
+                       do_relr_relocs(p, laddr(p, dyn[DT_RELR]), dyn[DT_RELRSZ]);
 
                if (head != &ldso && p->relro_start != p->relro_end) {
                        long ret = __syscall(SYS_mprotect, laddr(p, p->relro_start),