提交 e8dbf00a 编写于 作者: R Rich Felker

discard dso descriptors after performing relocations

eventually (once dlopen exists) this behavior will be conditional on
dlopen/dlsym not being reachable.
上级 368ba4a0
......@@ -322,6 +322,16 @@ static void reloc_all(struct dso *p)
}
}
static void free_all(struct dso *p)
{
struct dso *n;
while (p) {
n = p->next;
if (p->map) free(p);
p = n;
}
}
void *__dynlink(int argc, char **argv, size_t *got)
{
size_t *auxv, aux[AUX_CNT] = {0};
......@@ -387,6 +397,8 @@ void *__dynlink(int argc, char **argv, size_t *got)
reloc_all(head);
free_all(head);
errno = 0;
return (void *)aux[AT_ENTRY];
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册