fix regression in dlsym: rejection of special RTLD_* handles as invalid
This commit is contained in:
parent
41d7c77d6a
commit
637dd2d383
1 changed files with 2 additions and 1 deletions
|
|
@ -1119,7 +1119,8 @@ static void *do_dlsym(struct dso *p, const char *s, void *ra)
|
||||||
return __tls_get_addr((size_t []){def.dso->tls_id, def.sym->st_value});
|
return __tls_get_addr((size_t []){def.dso->tls_id, def.sym->st_value});
|
||||||
return def.dso->base + def.sym->st_value;
|
return def.dso->base + def.sym->st_value;
|
||||||
}
|
}
|
||||||
if (invalid_dso_handle(p)) return 0;
|
if (p != RTLD_DEFAULT && p != RTLD_NEXT && invalid_dso_handle(p))
|
||||||
|
return 0;
|
||||||
if (p->ghashtab) {
|
if (p->ghashtab) {
|
||||||
gh = gnu_hash(s);
|
gh = gnu_hash(s);
|
||||||
sym = gnu_lookup(s, gh, p);
|
sym = gnu_lookup(s, gh, p);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue