diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2020-12-30 23:40:14 +0000 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2021-04-15 09:30:43 +0100 |
commit | d2b997c7172e9a00895a9deb379f8782fbd2e36f (patch) | |
tree | 7feb501c2ba9b6cffe1b3e012312b8033340225b /elf | |
parent | aecbe50c9dc3f79edccf4f1fd42ce4c5537de28b (diff) | |
download | glibc-d2b997c7172e9a00895a9deb379f8782fbd2e36f.tar.gz glibc-d2b997c7172e9a00895a9deb379f8782fbd2e36f.tar.xz glibc-d2b997c7172e9a00895a9deb379f8782fbd2e36f.zip |
elf: Fix a DTV setup issue [BZ #27136]
The max modid is a valid index in the dtv, it should not be skipped. The bug is observable if the last module has modid == 64 and its generation is same or less than the max generation of the previous modules. Then dtv[0].counter implies dtv[64] is initialized but it isn't. Fixes bug 27136. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'elf')
-rw-r--r-- | elf/dl-tls.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/elf/dl-tls.c b/elf/dl-tls.c index dd76829e74..79b93ad91b 100644 --- a/elf/dl-tls.c +++ b/elf/dl-tls.c @@ -590,7 +590,7 @@ _dl_allocate_tls_init (void *result) } total += cnt; - if (total >= GL(dl_tls_max_dtv_idx)) + if (total > GL(dl_tls_max_dtv_idx)) break; listp = listp->next; |