|
@@ -346,15 +346,6 @@ void *dlopen(const char *libname, int flag)
|
|
|
if (_dl_fixup(dyn_chain, now_flag))
|
|
|
goto oops;
|
|
|
|
|
|
- if (relro_ptr) {
|
|
|
- for (rpnt = relro_ptr->next; rpnt; rpnt = rpnt->next) {
|
|
|
- if (rpnt->dyn->relro_size)
|
|
|
- _dl_protect_relro(rpnt->dyn);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
|
|
|
if (_dl_debug_addr) {
|
|
|
dl_brk = (void (*)(void)) _dl_debug_addr->r_brk;
|
|
@@ -386,6 +377,15 @@ void *dlopen(const char *libname, int flag)
|
|
|
}
|
|
|
}
|
|
|
#endif
|
|
|
+
|
|
|
+ if (relro_ptr) {
|
|
|
+ for (rpnt = relro_ptr->next; rpnt; rpnt = rpnt->next) {
|
|
|
+ if (rpnt->dyn->relro_size)
|
|
|
+ _dl_protect_relro(rpnt->dyn);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
_dl_unmap_cache();
|
|
|
return (void *) dyn_chain;
|
|
|
|