mirror of
git://git.musl-libc.org/musl
synced 2025-03-06 20:48:29 +01:00
fix regression in dl_iterate_phdr reporting of modules with no TLS
__tls_get_addr should not be called with an invalid TLS module id of 0. in practice it probably "works", returning the DTV length as if it were a pointer, and the callback should probably not inspect dlpi_tls_data in this case, but it's likely that some real-world callbacks use a check on dlpi_tls_data being non-null, rather than on dlpi_tls_modid being nonzero, to conclude that the module has TLS.
This commit is contained in:
parent
0ea78a6421
commit
aad50fcd79
1 changed files with 2 additions and 1 deletions
|
@ -2331,7 +2331,8 @@ int dl_iterate_phdr(int(*callback)(struct dl_phdr_info *info, size_t size, void
|
|||
info.dlpi_adds = gencnt;
|
||||
info.dlpi_subs = 0;
|
||||
info.dlpi_tls_modid = current->tls_id;
|
||||
info.dlpi_tls_data = __tls_get_addr((tls_mod_off_t[]){current->tls_id,0});
|
||||
info.dlpi_tls_data = !current->tls_id ? 0 :
|
||||
__tls_get_addr((tls_mod_off_t[]){current->tls_id,0});
|
||||
|
||||
ret = (callback)(&info, sizeof (info), data);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue