From 593dca82c9ef2a87777f48f8c7acd09da5457d7d Mon Sep 17 00:00:00 2001
From: "Peter S. Mazinger" <ps.m@gmx.net>
Date: Mon, 3 Oct 2005 17:53:21 +0000
Subject: Move _dl_protect_relro as in ldso.c, thanks to jocke

---
 ldso/libdl/libdl.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

(limited to 'ldso/libdl')

diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
index edb7c5033..9073b736b 100644
--- a/ldso/libdl/libdl.c
+++ b/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;
 
-- 
cgit v1.2.3