aboutsummaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorDaniel Levin <daniellevin2607@gmail.com>2026-06-08 14:42:03 +0000
committerPouria Mousavizadeh Tehrani <pouria@FreeBSD.org>2026-06-22 18:22:08 +0000
commit45a0cb52d3d62f8caae420b93e4b8c76ae3bc766 (patch)
treea526bbd5d1753809f1c6e6ac9eb0a7f97ed54a28 /libexec
parent9cd0d6231311bc5609403fb35377a7bb97a3cfaf (diff)
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rtld-elf/rtld.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index a72726684f0f..2a05afe66902 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -3159,7 +3159,8 @@ objlist_call_fini(Objlist *list, Obj_Entry *root, RtldLockState *lockstate)
for (index = elm->obj->fini_array_num - 1;
index >= 0; index--) {
if (fini_addr[index] != 0 &&
- fini_addr[index] != 1) {
+ fini_addr[index] != 1 &&
+ fini_addr[index] != (Elf_Addr)-1) {
dbg("calling fini function for %s at %p",
elm->obj->path,
(void *)fini_addr[index]);
@@ -3265,7 +3266,8 @@ objlist_call_init(Objlist *list, RtldLockState *lockstate)
for (index = 0; index < elm->obj->init_array_num;
index++) {
if (init_addr[index] != 0 &&
- init_addr[index] != 1) {
+ init_addr[index] != 1 &&
+ init_addr[index] != (Elf_Addr)-1) {
dbg("calling init function for %s at %p",
elm->obj->path,
(void *)init_addr[index]);