diff options
author | Rich Felker <dalias@aerifal.cx> | 2013-01-16 11:47:35 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2013-01-16 11:47:35 -0500 |
commit | cdc5c74c6abdb47453f2f7a170ed88b88698dee7 (patch) | |
tree | 6c876fd1607a2d8c20cffe4e2a39feab2a1f2883 | |
parent | f05f59b804f83ff8443ba8c549d6be3ba79e71a6 (diff) | |
download | musl-cdc5c74c6abdb47453f2f7a170ed88b88698dee7.tar.gz musl-cdc5c74c6abdb47453f2f7a170ed88b88698dee7.tar.xz musl-cdc5c74c6abdb47453f2f7a170ed88b88698dee7.zip |
fix bug in dladdr that prevented resolving addresses in the PLT
-rw-r--r-- | src/ldso/dynlink.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c index 782e979f..4ce1c3e8 100644 --- a/src/ldso/dynlink.c +++ b/src/ldso/dynlink.c @@ -1188,7 +1188,7 @@ int __dladdr(void *addr, Dl_info *info) } for (; nsym; nsym--, sym++) { - if (sym->st_shndx && sym->st_value + if (sym->st_value && (1<<(sym->st_info&0xf) & OK_TYPES) && (1<<(sym->st_info>>4) & OK_BINDS)) { void *symaddr = p->base + sym->st_value; |