about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ldso/dynlink.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/ldso/dynlink.c b/ldso/dynlink.c
index 7b47b163..8068fb37 100644
--- a/ldso/dynlink.c
+++ b/ldso/dynlink.c
@@ -552,6 +552,7 @@ static void do_relocs(struct dso *dso, size_t *rel, size_t rel_size, size_t stri
 
 static void do_relr_relocs(struct dso *dso, size_t *relr, size_t relr_size)
 {
+	if (dso == &ldso) return; /* self-relocation was done in _dlstart */
 	unsigned char *base = dso->base;
 	size_t *reloc_addr;
 	for (; relr_size; relr++, relr_size-=sizeof(size_t))