From: Rich Felker Date: Mon, 16 Jul 2018 16:29:14 +0000 (-0400) Subject: fix inefficient choice of tlsdesc function due to off-by-one X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=5fdccbcd8f080ca6cd2c64cca520805f17af857b;p=musl fix inefficient choice of tlsdesc function due to off-by-one tls_id is one-based, whereas [static_]tls_cnt is a count, so comparison for checking that a given tls_id is dynamic rather than static needs to use strict inequality. --- diff --git a/ldso/dynlink.c b/ldso/dynlink.c index 41534e90..8242a1d1 100644 --- a/ldso/dynlink.c +++ b/ldso/dynlink.c @@ -438,7 +438,7 @@ static void do_relocs(struct dso *dso, size_t *rel, size_t rel_size, size_t stri #endif case REL_TLSDESC: if (stride<3) addend = reloc_addr[1]; - if (runtime && def.dso->tls_id >= static_tls_cnt) { + if (runtime && def.dso->tls_id > static_tls_cnt) { struct td_index *new = malloc(sizeof *new); if (!new) { error(