mirror of git://git.musl-libc.org/musl
fix error reporting for dlsym with global symbols
This commit is contained in:
parent
db4096c5f2
commit
4027f4e8f9
|
@ -723,7 +723,7 @@ static void *do_dlsym(struct dso *p, const char *s, void *ra)
|
||||||
}
|
}
|
||||||
if (p == head || p == RTLD_DEFAULT) {
|
if (p == head || p == RTLD_DEFAULT) {
|
||||||
void *res = find_sym(head, s, 0);
|
void *res = find_sym(head, s, 0);
|
||||||
if (!res) errflag = 1;
|
if (!res) goto failed;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
h = hash(s);
|
h = hash(s);
|
||||||
|
@ -736,6 +736,7 @@ static void *do_dlsym(struct dso *p, const char *s, void *ra)
|
||||||
if (sym && sym->st_value && (1<<(sym->st_info&0xf) & OK_TYPES))
|
if (sym && sym->st_value && (1<<(sym->st_info&0xf) & OK_TYPES))
|
||||||
return p->deps[i]->base + sym->st_value;
|
return p->deps[i]->base + sym->st_value;
|
||||||
}
|
}
|
||||||
|
failed:
|
||||||
errflag = 1;
|
errflag = 1;
|
||||||
snprintf(errbuf, sizeof errbuf, "Symbol not found: %s", s);
|
snprintf(errbuf, sizeof errbuf, "Symbol not found: %s", s);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue