diff options
author | Marcus Shawcroft <marcus.shawcroft@linaro.org> | 2013-11-13 12:37:41 +0000 |
---|---|---|
committer | Marcus Shawcroft <marcus.shawcroft@linaro.org> | 2013-11-13 12:37:41 +0000 |
commit | a615be46758fd857872e3e2a12f1fd296bee1a7c (patch) | |
tree | 416953fedd5aef27f30c18c887d2cf85a6ef9f19 /elf/tlsdeschtab.h | |
parent | 7ddace62b0ea4c733fec0a50b52dbdef64f40c9c (diff) | |
download | glibc-a615be46758fd857872e3e2a12f1fd296bee1a7c.zip glibc-a615be46758fd857872e3e2a12f1fd296bee1a7c.tar.gz glibc-a615be46758fd857872e3e2a12f1fd296bee1a7c.tar.bz2 |
Handle NULL return from htab_find_slot()
Diffstat (limited to 'elf/tlsdeschtab.h')
-rw-r--r-- | elf/tlsdeschtab.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/elf/tlsdeschtab.h b/elf/tlsdeschtab.h index 155f4fd..8ce8249 100644 --- a/elf/tlsdeschtab.h +++ b/elf/tlsdeschtab.h @@ -102,6 +102,12 @@ _dl_make_tlsdesc_dynamic (struct link_map *map, size_t ti_offset) test.tlsinfo.ti_module = map->l_tls_modid; test.tlsinfo.ti_offset = ti_offset; entry = htab_find_slot (ht, &test, 1, hash_tlsdesc, eq_tlsdesc); + if (! entry) + { + __rtld_lock_unlock_recursive (GL(dl_load_lock)); + return 0; + } + if (*entry) { td = *entry; |