fix bug in dladdr that prevented resolving addresses in the PLT
authorRich Felker <dalias@aerifal.cx>
Wed, 16 Jan 2013 16:47:35 +0000 (11:47 -0500)
committerRich Felker <dalias@aerifal.cx>
Wed, 16 Jan 2013 16:47:35 +0000 (11:47 -0500)
src/ldso/dynlink.c

index 782e979..4ce1c3e 100644 (file)
@@ -1188,7 +1188,7 @@ int __dladdr(void *addr, Dl_info *info)
        }
 
        for (; nsym; nsym--, sym++) {
        }
 
        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;
                 && (1<<(sym->st_info&0xf) & OK_TYPES)
                 && (1<<(sym->st_info>>4) & OK_BINDS)) {
                        void *symaddr = p->base + sym->st_value;