From: Szabolcs Nagy Date: Wed, 30 Dec 2020 23:40:14 +0000 (+0000) Subject: elf: Fix a DTV setup issue [BZ #27136] X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f774573828499855b342793fca5cbad8c6814190;p=thirdparty%2Fglibc.git 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. --- diff --git a/elf/dl-tls.c b/elf/dl-tls.c index dd76829e741..79b93ad91bd 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;