aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2026-01-15 18:23:42 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2026-01-15 18:23:42 +0000
commit6d6bf4a892d6be84ec59fce5419eab616bcabb40 (patch)
tree10cf80da1917e9598412d2033221fd49767e58d2
parent4ba8df2a8bb9397e922b07c8e9610d1a8f0d8ee0 (diff)
rtld: Use a helper variable to simplify a few lines
Reviewed by: kib Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D54507
-rw-r--r--libexec/rtld-elf/rtld.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 78a111095400..5e15ba996ec8 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -5496,7 +5496,7 @@ allocate_tls(Obj_Entry *objs, void *oldtcb, size_t tcbsize, size_t tcbalign)
char *addr;
size_t i;
size_t extra_size, maxalign, post_size, pre_size, tls_block_size;
- size_t tls_init_align, tls_init_offset;
+ size_t tls_init_align, tls_init_offset, tls_bss_offset;
if (oldtcb != NULL && tcbsize == TLS_TCB_SIZE)
return (oldtcb);
@@ -5554,11 +5554,10 @@ allocate_tls(Obj_Entry *objs, void *oldtcb, size_t tcbsize, size_t tcbalign)
obj->tlsinitsize);
}
if (obj->tlssize > obj->tlsinitsize) {
- memset(addr + tls_init_offset +
- obj->tlsinitsize,
- 0,
- obj->tlssize - obj->tlsinitsize -
- tls_init_offset);
+ tls_bss_offset = tls_init_offset +
+ obj->tlsinitsize;
+ memset(addr + tls_bss_offset, 0,
+ obj->tlssize - tls_bss_offset);
}
dtv->dtv_slots[obj->tlsindex - 1].dtvs_tls = addr;
}