aboutsummaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2019-03-29 15:07:00 +0000
committerEd Maste <emaste@FreeBSD.org>2019-03-29 15:07:00 +0000
commit650f4477a5b66368a660f22e651b389500d9f87a (patch)
tree9af912721ccb09690acdedb0f959a710e5450147 /libexec
parentdc412d2d4b1840c693f66cb20ad4a962c5c4b3a5 (diff)
downloadsrc-650f4477a5b66368a660f22e651b389500d9f87a.tar.gz
src-650f4477a5b66368a660f22e651b389500d9f87a.zip
rtld: attempt to fix reloc_non_plt TLS allocation on MIPS
allocate_tls_offset returns true on success. The same issue existed on arm and was fixed in r345693. PR: 236880 MFC after: 1 month Sponsored by: The FreeBSD Foundation
Notes
Notes: svn path=/head/; revision=345694
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rtld-elf/mips/reloc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libexec/rtld-elf/mips/reloc.c b/libexec/rtld-elf/mips/reloc.c
index 129a62592d1a..8bc3e95cb4d3 100644
--- a/libexec/rtld-elf/mips/reloc.c
+++ b/libexec/rtld-elf/mips/reloc.c
@@ -588,7 +588,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags,
if (def == NULL)
return -1;
- if (!defobj->tls_done && allocate_tls_offset(obj))
+ if (!defobj->tls_done && !allocate_tls_offset(obj))
return -1;
val += (Elf_Addr)def->st_value - TLS_DTP_OFFSET;
@@ -616,7 +616,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags,
if (def == NULL)
return -1;
- if (!defobj->tls_done && allocate_tls_offset(obj))
+ if (!defobj->tls_done && !allocate_tls_offset(obj))
return -1;
val += (Elf_Addr)(def->st_value + defobj->tlsoffset