Преглед на файлове

Move _dl_protect_relro as in ldso.c, thanks to jocke

Peter S. Mazinger преди 18 години
родител
ревизия
593dca82c9
променени са 1 файла, в които са добавени 9 реда и са изтрити 9 реда
  1. 9 9
      ldso/libdl/libdl.c

+ 9 - 9
ldso/libdl/libdl.c

@@ -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);
-		}
-	}
-	/* TODO:  Should we set the protections of all pages back to R/O now ? */
-
-
 	/* Notify the debugger we have added some objects. */
 	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);
+		}
+	}
+	/* TODO:  Should we set the protections of all pages back to R/O now ? */
+
 	_dl_unmap_cache();
 	return (void *) dyn_chain;